agora inbox for [email protected]help / color / mirror / Atom feed
[PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION 103+ messages / 6 participants [nested] [flat]
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..4856504045 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does not exists in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v4-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 27 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 19 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..f0412220bc 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,33 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..ffb93f084d 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,25 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v2-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v3 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-01-26 09:43 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-01-26 09:43 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 30 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 22 ++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a..2b83beed11 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,36 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" do not in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e..a0178cfb7e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,28 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; RESET SESSION AUTHORIZATION; -- 2.30.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v3-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-13 05:49 Japin Li <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Japin Li @ 2021-02-13 05:49 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..eaffe1351f 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication name "testpub" is already in subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publication names "testpub1, testpub2" are already in subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication name "testpub3" does no exist in subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publication names "testpub3, testpub4" do no exist in subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v5-0004-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v8 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 42 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 34 ++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..9368a9c206 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,48 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- fail - publication used more than once +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub1 WITH (refresh = false); +ERROR: publication name "testpub1" used more than once +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - publication use more then once +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub1 WITH (refresh = false); +ERROR: publication name "testpub1" used more than once +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..cc0ed4fe77 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,40 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- fail - publication used more than once +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub1 WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - publication use more then once +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub1 WITH (refresh = false); + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v8-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION @ 2021-02-16 01:50 Bharath Rupireddy <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Bharath Rupireddy @ 2021-02-16 01:50 UTC (permalink / raw) --- src/test/regress/expected/subscription.out | 36 ++++++++++++++++++++++ src/test/regress/sql/subscription.sql | 28 +++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 14a430221d..d7df579069 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -200,6 +200,42 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist (1 row) +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); +ERROR: publication "testpub" is already present in the subscription +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); +ERROR: publications "testpub1", "testpub2" are already present in the subscription +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist +(1 row) + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); +ERROR: subscription must contain at least one publication +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); +ERROR: publication "testpub3" doesn't exist in the subscription +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); +ERROR: publications "testpub3", "testpub4" do not exist in the subscription +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); +ERROR: unrecognized subscription parameter: "copy_data" +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); +\dRs+ + List of subscriptions + Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo +-----------------+---------------------------+---------+-------------+--------+-----------+--------------------+----------------------------- + regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist +(1 row) + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub WITH (connect = false, create_slot = false, copy_data = false); diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 81e65e5e64..746a589a8e 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -145,6 +145,34 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); \dRs+ +-- fail - publication already exists +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub WITH (refresh = false); + +-- ok - add two publications into subscription +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +-- fail - publications already exist +ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + +-- fail - all publications are deleted +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub, testpub1, testpub2 WITH (refresh = false); + +-- fail - the deleted publication does not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3 WITH (refresh = false); + +-- fail - the deleted publications do not in subscription +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub3, testpub4 WITH (refresh = false); + +-- fail - do not support copy_data option +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1 WITH (refresh = false, copy_data = true); + +-- ok - delete publications +ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false); + +\dRs+ + DROP SUBSCRIPTION regress_testsub; CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub -- 2.25.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=v7-0003-Add-documentation-for-ALTER-SUBSCRIPTION.ADD-DROP.patch ^ permalink raw reply [nested|flat] 103+ messages in thread
* race condition in pg_class @ 2023-10-25 10:39 Smolkin Grigory <[email protected]> 0 siblings, 3 replies; 103+ messages in thread From: Smolkin Grigory @ 2023-10-25 10:39 UTC (permalink / raw) To: pgsql-hackers Hello, hackers! We are running PG13.10 and recently we have encountered what appears to be a bug due to some race condition between ALTER TABLE ... ADD CONSTRAINT and some other catalog-writer, possibly ANALYZE. The problem is that after successfully creating index on relation (which previosly didnt have any indexes), its pg_class.relhasindex remains set to "false", which is illegal, I think. Index was built using the following statement: ALTER TABLE "example" ADD constraint "example_pkey" PRIMARY KEY (id); PG_CLASS: # select ctid,oid,xmin,xmax, * from pg_class where oid = 3566558198; -[ RECORD 1 ]-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ctid | (12,49) oid | 3566558198 xmin | 1202298791 xmax | 0 relname | example relnamespace | 16479 reltype | 3566558200 reloftype | 0 relowner | 16386 relam | 2 relfilenode | 3566558198 reltablespace | 0 relpages | 152251 reltuples | 1.1565544e+07 relallvisible | 127837 reltoastrelid | 3566558203 relhasindex | f relisshared | f relpersistence | p relkind | r relnatts | 12 relchecks | 0 relhasrules | f relhastriggers | f relhassubclass | f relrowsecurity | f relforcerowsecurity | f relispopulated | t relreplident | d relispartition | f relrewrite | 0 relfrozenxid | 1201647807 relminmxid | 1 relacl | reloptions | relpartbound | PG_INDEX: # select ctid,xmin,xmax,indexrelid::regclass,indrelid::regclass, * from pg_index where indexrelid = 3569625749; -[ RECORD 1 ]--+--------------------------------------------- ctid | (3,30) xmin | 1202295045 xmax | 0 indexrelid | "example_pkey" indrelid | "example" indexrelid | 3569625749 indrelid | 3566558198 indnatts | 1 indnkeyatts | 1 indisunique | t indisprimary | t indisexclusion | f indimmediate | t indisclustered | f indisvalid | t indcheckxmin | f indisready | t indislive | t indisreplident | f indkey | 1 indcollation | 0 indclass | 3124 indoption | 0 indexprs | indpred | Looking into the WAL via waldump given us the following picture (full waldump output is attached): tx: 1202295045, lsn: AAB1/D38378D0, prev AAB1/D3837208, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 0 FPW tx: 1202298790, lsn: AAB1/D3912EC0, prev AAB1/D3912E80, desc: NEW_CID rel 1663/16387/1259; tid 6/24; cmin: 0, cmax: 4294967295, combo: 4294967295 tx: 1202298790, lsn: AAB1/D3927580, prev AAB1/D3926988, desc: COMMIT 2023-10-04 22:41:23.863979 UTC tx: 1202298791, lsn: AAB1/D393C230, prev AAB1/D393C1F0, desc: HOT_UPDATE off 24 xmax 1202298791 flags 0x20 ; new off 45 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 tx: 1202298791, lsn: AAB1/D394ADA0, prev AAB1/D394AD60, desc: UPDATE off 45 xmax 1202298791 flags 0x00 ; new off 28 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 6 tx: 1202298791, lsn: AAB1/D3961088, prev AAB1/D3961048, desc: NEW_CID rel 1663/16387/1259; tid 12/49; cmin: 50, cmax: 4294967295, combo: 4294967295 tx: 1202295045, lsn: AAB1/D3962E78, prev AAB1/D3962E28, desc: INPLACE off 24, blkref #0: rel 1663/16387/1259 blk 6 tx: 1202295045, lsn: AAB1/D39632A0, prev AAB1/D3963250, desc: COMMIT 2023-10-04 22:41:23.878565 UTC tx: 1202298791, lsn: AAB1/D3973420, prev AAB1/D39733D0, desc: COMMIT 2023-10-04 22:41:23.884951 UTC 1202295045 - create index statement 1202298790 and 1202298791 are some other concurrent operations, unfortunately I wasnt able to determine what are they So looks like 1202295045, updated tuple (6,24) in pg_class INPLACE, in which at this point xmax was already set by 1202298791 and new tuple in (12,49) was in created. So after 1202298791 was commited, that inplace update was effectively lost. If we do an inclusive PITR with (recovery_target_xid = 1202295045), we can see the following picture (notice relhasindex and xmax): # select ctid,oid, xmin,xmax,relhasindex,cmin,cmax from pg_class where oid = 3566558198; -[ RECORD 1 ]----------- ctid | (6,24) oid | 3566558198 xmin | 1202298790 xmax | 1202298791 relhasindex | t cmin | 0 cmax | 0 I've tried to reproduce this scenario with CREATE INDEX and various concurrent statements, but no luck. Attached full waldump output for the relevant WAL segment. rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D3000598, prev AAB1/D2FFF458, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31130 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3003B50, prev AAB1/D3003028, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31131 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D3008350, prev AAB1/D3008310, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31132 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D3009F48, prev AAB1/D3009F08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31133 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D3010DB8, prev AAB1/D3010D78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31134 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D30159E8, prev AAB1/D30159A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31135 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D3016B08, prev AAB1/D30159E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31136 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D3019608, prev AAB1/D30195D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31137 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D301B3D0, prev AAB1/D301B398, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31138 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D301C4F8, prev AAB1/D301B3D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31139 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D301FEB0, prev AAB1/D301FE70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31140 FPW rmgr: XLOG len (rec/tot): 51/ 4393, tx: 1202295045, lsn: AAB1/D3022E58, prev AAB1/D3022E18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31141 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D30279B8, prev AAB1/D3027978, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31142 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D302FD68, prev AAB1/D302FD28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31143 FPW rmgr: XLOG len (rec/tot): 51/ 4398, tx: 1202295045, lsn: AAB1/D3033A28, prev AAB1/D30329E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31144 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D30369B0, prev AAB1/D3036978, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31145 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D303BA98, prev AAB1/D3039E58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31146 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D303EA48, prev AAB1/D303EA18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31147 FPW rmgr: XLOG len (rec/tot): 51/ 4383, tx: 1202295045, lsn: AAB1/D303FB60, prev AAB1/D303EA48, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31148 FPW rmgr: XLOG len (rec/tot): 51/ 4383, tx: 1202295045, lsn: AAB1/D3040C98, prev AAB1/D303FB60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31149 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D3041DB8, prev AAB1/D3040C98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31150 FPW rmgr: XLOG len (rec/tot): 51/ 4392, tx: 1202295045, lsn: AAB1/D3046270, prev AAB1/D3044938, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31151 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D3047398, prev AAB1/D3046270, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31152 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D3048FD0, prev AAB1/D30484C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31153 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D304A100, prev AAB1/D3048FD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31154 FPW rmgr: XLOG len (rec/tot): 51/ 4404, tx: 1202295045, lsn: AAB1/D304B230, prev AAB1/D304A100, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31155 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D304CDF0, prev AAB1/D304C380, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31156 FPW rmgr: XLOG len (rec/tot): 51/ 4389, tx: 1202295045, lsn: AAB1/D304DEF8, prev AAB1/D304CDF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31157 FPW rmgr: XLOG len (rec/tot): 51/ 4386, tx: 1202295045, lsn: AAB1/D304F038, prev AAB1/D304DEF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31158 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D3050178, prev AAB1/D304F038, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31159 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D3051288, prev AAB1/D3050178, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31160 FPW rmgr: XLOG len (rec/tot): 51/ 4385, tx: 1202295045, lsn: AAB1/D3053E10, prev AAB1/D3053DD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31161 FPW rmgr: XLOG len (rec/tot): 51/ 4394, tx: 1202295045, lsn: AAB1/D305A670, prev AAB1/D305A630, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31162 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D305F1F0, prev AAB1/D305F1B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31163 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D3060320, prev AAB1/D305F1F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31164 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D3061440, prev AAB1/D3060320, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31165 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D3062570, prev AAB1/D3061440, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31166 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D3063680, prev AAB1/D3062570, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31167 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D30647A0, prev AAB1/D3063680, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31168 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D30658B8, prev AAB1/D30647A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31169 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D30669C8, prev AAB1/D30658B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31170 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D3067AC8, prev AAB1/D30669C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31171 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D3068BE8, prev AAB1/D3067AC8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31172 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D3069CE0, prev AAB1/D3068BE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31173 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D306ADF0, prev AAB1/D3069CE0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31174 FPW rmgr: XLOG len (rec/tot): 51/ 4328, tx: 1202295045, lsn: AAB1/D306BEE8, prev AAB1/D306ADF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31175 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D306CFE8, prev AAB1/D306BEE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31176 FPW rmgr: XLOG len (rec/tot): 51/ 4324, tx: 1202295045, lsn: AAB1/D306E0F8, prev AAB1/D306CFE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31177 FPW rmgr: XLOG len (rec/tot): 51/ 4307, tx: 1202295045, lsn: AAB1/D306F1E0, prev AAB1/D306E0F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31178 FPW rmgr: XLOG len (rec/tot): 51/ 4309, tx: 1202295045, lsn: AAB1/D30702D0, prev AAB1/D306F1E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31179 FPW rmgr: XLOG len (rec/tot): 51/ 4313, tx: 1202295045, lsn: AAB1/D3071EA8, prev AAB1/D30713A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31180 FPW rmgr: XLOG len (rec/tot): 51/ 4343, tx: 1202295045, lsn: AAB1/D3072FA0, prev AAB1/D3071EA8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31181 FPW rmgr: XLOG len (rec/tot): 51/ 4300, tx: 1202295045, lsn: AAB1/D3079230, prev AAB1/D30791F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31182 FPW rmgr: XLOG len (rec/tot): 51/ 4337, tx: 1202295045, lsn: AAB1/D30804E8, prev AAB1/D30804A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31183 FPW rmgr: XLOG len (rec/tot): 51/ 4321, tx: 1202295045, lsn: AAB1/D30815E0, prev AAB1/D30804E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31184 FPW rmgr: XLOG len (rec/tot): 51/ 4319, tx: 1202295045, lsn: AAB1/D3083210, prev AAB1/D30826E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31185 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D3084308, prev AAB1/D3083210, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31186 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D3088CD0, prev AAB1/D3088C90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31187 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D3089DC0, prev AAB1/D3088CD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31188 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D308B9C0, prev AAB1/D308AED8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31189 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D308CAE8, prev AAB1/D308B9C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31190 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D308E6C0, prev AAB1/D308DBF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31191 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D308F7C8, prev AAB1/D308E6C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31192 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D30908F0, prev AAB1/D308F7C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31193 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D30919F0, prev AAB1/D30908F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31194 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D3092B10, prev AAB1/D30919F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31195 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D3093C08, prev AAB1/D3092B10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31196 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D3094D28, prev AAB1/D3093C08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31197 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3095E28, prev AAB1/D3094D28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31198 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D3096F60, prev AAB1/D3095E28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31199 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D30980E8, prev AAB1/D30980B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31200 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D309B258, prev AAB1/D309B218, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31201 FPW rmgr: XLOG len (rec/tot): 51/ 4323, tx: 1202295045, lsn: AAB1/D30A4370, prev AAB1/D30A4330, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31202 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D30AAD28, prev AAB1/D30AACE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31203 FPW rmgr: XLOG len (rec/tot): 51/ 4311, tx: 1202295045, lsn: AAB1/D30ABE20, prev AAB1/D30AAD28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31204 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D30B2F20, prev AAB1/D30B2EE0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31205 FPW rmgr: XLOG len (rec/tot): 51/ 4312, tx: 1202295045, lsn: AAB1/D30B5FB0, prev AAB1/D30B5ED8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31206 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D30B70A0, prev AAB1/D30B5FB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31207 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D30B8C48, prev AAB1/D30B8C10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31208 FPW rmgr: XLOG len (rec/tot): 51/ 4320, tx: 1202295045, lsn: AAB1/D30BC5A8, prev AAB1/D30BC568, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31209 FPW rmgr: XLOG len (rec/tot): 51/ 4314, tx: 1202295045, lsn: AAB1/D30BF970, prev AAB1/D30BD688, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31210 FPW rmgr: XLOG len (rec/tot): 51/ 4330, tx: 1202295045, lsn: AAB1/D30C2B40, prev AAB1/D30C2B00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31211 FPW rmgr: XLOG len (rec/tot): 51/ 4328, tx: 1202295045, lsn: AAB1/D30C4708, prev AAB1/D30C3C30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31212 FPW rmgr: XLOG len (rec/tot): 51/ 4308, tx: 1202295045, lsn: AAB1/D30C6888, prev AAB1/D30C6850, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31213 FPW rmgr: XLOG len (rec/tot): 51/ 4323, tx: 1202295045, lsn: AAB1/D30C99D0, prev AAB1/D30C9998, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31214 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D30CAAD0, prev AAB1/D30C99D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31215 FPW rmgr: XLOG len (rec/tot): 51/ 4323, tx: 1202295045, lsn: AAB1/D30CDF90, prev AAB1/D30CDF18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31216 FPW rmgr: XLOG len (rec/tot): 51/ 4327, tx: 1202295045, lsn: AAB1/D30CF0C0, prev AAB1/D30CF090, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31217 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D30D0BE8, prev AAB1/D30D01C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31218 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D30D1CF0, prev AAB1/D30D0BE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31219 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D30D2E08, prev AAB1/D30D1CF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31220 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D30D5A68, prev AAB1/D30D5A28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31221 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D30DC2E8, prev AAB1/D30DC2A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31222 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D30E2CF8, prev AAB1/D30E2CB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31223 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D30E3DF8, prev AAB1/D30E2CF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31224 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D30E4F18, prev AAB1/D30E3DF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31225 FPW rmgr: XLOG len (rec/tot): 51/ 4348, tx: 1202295045, lsn: AAB1/D30E6030, prev AAB1/D30E4F18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31226 FPW rmgr: XLOG len (rec/tot): 51/ 4336, tx: 1202295045, lsn: AAB1/D30E7130, prev AAB1/D30E6030, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31227 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D30EA298, prev AAB1/D30EA258, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31228 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D30EB3A8, prev AAB1/D30EA298, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31229 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D30EC4E0, prev AAB1/D30EB3A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31230 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D30ED5F0, prev AAB1/D30EC4E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31231 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D30EE720, prev AAB1/D30ED5F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31232 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D30EF840, prev AAB1/D30EE720, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31233 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D30F0970, prev AAB1/D30EF840, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31234 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D30F1A90, prev AAB1/D30F0970, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31235 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D30F2BB0, prev AAB1/D30F1A90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31236 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D30F3CB8, prev AAB1/D30F2BB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31237 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D30F4DD0, prev AAB1/D30F3CB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31238 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D30F5ED8, prev AAB1/D30F4DD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31239 FPW rmgr: XLOG len (rec/tot): 51/ 4347, tx: 1202295045, lsn: AAB1/D30F7000, prev AAB1/D30F5ED8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31240 FPW rmgr: XLOG len (rec/tot): 51/ 4326, tx: 1202295045, lsn: AAB1/D30FCC58, prev AAB1/D30FC0E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31241 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D31013B0, prev AAB1/D3101370, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31242 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D31024C8, prev AAB1/D31013B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31243 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D31035D0, prev AAB1/D31024C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31244 FPW rmgr: XLOG len (rec/tot): 51/ 4302, tx: 1202295045, lsn: AAB1/D3105038, prev AAB1/D31046D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31245 FPW rmgr: XLOG len (rec/tot): 51/ 4326, tx: 1202295045, lsn: AAB1/D3106120, prev AAB1/D3105038, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31246 FPW rmgr: XLOG len (rec/tot): 51/ 4321, tx: 1202295045, lsn: AAB1/D310AAC0, prev AAB1/D310AA80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31247 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D310FC18, prev AAB1/D310FBD8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31248 FPW rmgr: XLOG len (rec/tot): 51/ 4328, tx: 1202295045, lsn: AAB1/D3114B00, prev AAB1/D3114AC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31249 FPW rmgr: XLOG len (rec/tot): 51/ 4305, tx: 1202295045, lsn: AAB1/D3115BE8, prev AAB1/D3114B00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31250 FPW rmgr: XLOG len (rec/tot): 51/ 4306, tx: 1202295045, lsn: AAB1/D3116CD8, prev AAB1/D3115BE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31251 FPW rmgr: XLOG len (rec/tot): 51/ 4328, tx: 1202295045, lsn: AAB1/D3117DB0, prev AAB1/D3116CD8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31252 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D3118EB0, prev AAB1/D3117DB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31253 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D3119FA0, prev AAB1/D3118EB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31254 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D311B0B0, prev AAB1/D3119FA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31255 FPW rmgr: XLOG len (rec/tot): 51/ 4336, tx: 1202295045, lsn: AAB1/D311C1B8, prev AAB1/D311B0B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31256 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D311D2A8, prev AAB1/D311C1B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31257 FPW rmgr: XLOG len (rec/tot): 51/ 4326, tx: 1202295045, lsn: AAB1/D311E3B0, prev AAB1/D311D2A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31258 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D31212B8, prev AAB1/D3121278, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31259 FPW rmgr: XLOG len (rec/tot): 51/ 4313, tx: 1202295045, lsn: AAB1/D31223B8, prev AAB1/D31212B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31260 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D3123498, prev AAB1/D31223B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31261 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D3124598, prev AAB1/D3123498, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31262 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D31256A0, prev AAB1/D3124598, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31263 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D31267D0, prev AAB1/D31256A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31264 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D3128388, prev AAB1/D31278D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31265 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D3129480, prev AAB1/D3128388, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31266 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D312A5B0, prev AAB1/D3129480, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31267 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D312F6C8, prev AAB1/D312F688, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31268 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D3134310, prev AAB1/D31342D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31269 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D3138FE0, prev AAB1/D3138FA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31270 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D313A108, prev AAB1/D3138FE0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31271 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D313B210, prev AAB1/D313A108, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31272 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D313C330, prev AAB1/D313B210, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31273 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D313D450, prev AAB1/D313C330, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31274 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D313E570, prev AAB1/D313D450, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31275 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D3141068, prev AAB1/D3141028, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31276 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D31480F8, prev AAB1/D31460D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31277 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D314AEA0, prev AAB1/D314AE60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31278 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D314BFC0, prev AAB1/D314AEA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31279 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D314D0D8, prev AAB1/D314BFC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31280 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D314E208, prev AAB1/D314D0D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31281 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D314F320, prev AAB1/D314E208, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31282 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D3150440, prev AAB1/D314F320, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31283 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D3151538, prev AAB1/D3150440, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31284 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D3153050, prev AAB1/D3152650, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31285 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D3154170, prev AAB1/D3153050, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31286 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3155278, prev AAB1/D3154170, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31287 FPW rmgr: XLOG len (rec/tot): 51/ 4330, tx: 1202295045, lsn: AAB1/D31563A0, prev AAB1/D3155278, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31288 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D31594E0, prev AAB1/D31594A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31289 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D315E4B8, prev AAB1/D315E478, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31290 FPW rmgr: XLOG len (rec/tot): 51/ 4324, tx: 1202295045, lsn: AAB1/D3165458, prev AAB1/D3165418, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31291 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D3166558, prev AAB1/D3165458, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31292 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D3167650, prev AAB1/D3166558, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31293 FPW rmgr: XLOG len (rec/tot): 51/ 4314, tx: 1202295045, lsn: AAB1/D3168750, prev AAB1/D3167650, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31294 FPW rmgr: XLOG len (rec/tot): 51/ 4301, tx: 1202295045, lsn: AAB1/D3169830, prev AAB1/D3168750, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31295 FPW rmgr: XLOG len (rec/tot): 51/ 4316, tx: 1202295045, lsn: AAB1/D316A918, prev AAB1/D3169830, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31296 FPW rmgr: XLOG len (rec/tot): 51/ 4324, tx: 1202295045, lsn: AAB1/D316F800, prev AAB1/D316F7C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31297 FPW rmgr: XLOG len (rec/tot): 51/ 4321, tx: 1202295045, lsn: AAB1/D3172560, prev AAB1/D3172520, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31298 FPW rmgr: XLOG len (rec/tot): 51/ 4319, tx: 1202295045, lsn: AAB1/D3173648, prev AAB1/D3172560, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31299 FPW rmgr: XLOG len (rec/tot): 51/ 4324, tx: 1202295045, lsn: AAB1/D3174740, prev AAB1/D3173648, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31300 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D3175828, prev AAB1/D3174740, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31301 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D3176930, prev AAB1/D3175828, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31302 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D3177A30, prev AAB1/D3176930, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31303 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D3179570, prev AAB1/D3178B40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31304 FPW rmgr: XLOG len (rec/tot): 51/ 4332, tx: 1202295045, lsn: AAB1/D317A680, prev AAB1/D3179570, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31305 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D317B770, prev AAB1/D317A680, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31306 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D317C890, prev AAB1/D317B770, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31307 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D317D980, prev AAB1/D317C890, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31308 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D3182448, prev AAB1/D3182408, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31309 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3188CA0, prev AAB1/D3188C60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31310 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D318BA90, prev AAB1/D318BA50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31311 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D318CBB8, prev AAB1/D318BA90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31312 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D318DCB0, prev AAB1/D318CBB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31313 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D3190AA0, prev AAB1/D3190A60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31314 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D3191BA8, prev AAB1/D3190AA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31315 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D3192CB0, prev AAB1/D3191BA8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31316 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D3193DB0, prev AAB1/D3192CB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31317 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D31956B8, prev AAB1/D3195678, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31318 FPW rmgr: XLOG len (rec/tot): 51/ 4330, tx: 1202295045, lsn: AAB1/D31967E8, prev AAB1/D31956B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31319 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D3198388, prev AAB1/D3198348, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31320 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D3199488, prev AAB1/D3198388, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31321 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D319A598, prev AAB1/D3199488, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31322 FPW rmgr: XLOG len (rec/tot): 51/ 4323, tx: 1202295045, lsn: AAB1/D319C0B8, prev AAB1/D319C078, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31323 FPW rmgr: XLOG len (rec/tot): 51/ 4305, tx: 1202295045, lsn: AAB1/D31A10C0, prev AAB1/D31A1088, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31324 FPW rmgr: XLOG len (rec/tot): 51/ 4314, tx: 1202295045, lsn: AAB1/D31A21B0, prev AAB1/D31A10C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31325 FPW rmgr: XLOG len (rec/tot): 51/ 4295, tx: 1202295045, lsn: AAB1/D31A3CA0, prev AAB1/D31A3C60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31326 FPW rmgr: XLOG len (rec/tot): 51/ 4293, tx: 1202295045, lsn: AAB1/D31A4D80, prev AAB1/D31A3CA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31327 FPW rmgr: XLOG len (rec/tot): 51/ 4314, tx: 1202295045, lsn: AAB1/D31A96A0, prev AAB1/D31A9660, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31328 FPW rmgr: XLOG len (rec/tot): 51/ 4320, tx: 1202295045, lsn: AAB1/D31B1A38, prev AAB1/D31B0FF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31329 FPW rmgr: XLOG len (rec/tot): 51/ 4307, tx: 1202295045, lsn: AAB1/D31B5290, prev AAB1/D31B5250, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31330 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D31B7900, prev AAB1/D31B6F28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31331 FPW rmgr: XLOG len (rec/tot): 51/ 4336, tx: 1202295045, lsn: AAB1/D31B8A08, prev AAB1/D31B7900, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31332 FPW rmgr: XLOG len (rec/tot): 51/ 4313, tx: 1202295045, lsn: AAB1/D31BB9F0, prev AAB1/D31BB9B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31333 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D31BD598, prev AAB1/D31BCAE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31334 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D31BF120, prev AAB1/D31BF0E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31335 FPW rmgr: XLOG len (rec/tot): 51/ 4347, tx: 1202295045, lsn: AAB1/D31C0248, prev AAB1/D31BF120, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31336 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D31C1348, prev AAB1/D31C0248, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31337 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D31C2478, prev AAB1/D31C1348, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31338 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D31C4848, prev AAB1/D31C3F58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31339 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D31C6480, prev AAB1/D31C5968, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31340 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D31CA970, prev AAB1/D31C9F60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31341 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D31CE438, prev AAB1/D31CE3F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31342 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D31CFF08, prev AAB1/D31CF550, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31343 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D31D1040, prev AAB1/D31CFF08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31344 FPW rmgr: XLOG len (rec/tot): 51/ 4385, tx: 1202295045, lsn: AAB1/D31D3810, prev AAB1/D31D37D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31345 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D31D4950, prev AAB1/D31D3810, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31346 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D31D9F60, prev AAB1/D31D9F20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31347 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D31DEAD8, prev AAB1/D31DEA98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31348 FPW rmgr: XLOG len (rec/tot): 51/ 4383, tx: 1202295045, lsn: AAB1/D31E3600, prev AAB1/D31E35C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31349 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D31E50F8, prev AAB1/D31E4738, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31350 FPW rmgr: XLOG len (rec/tot): 51/ 4394, tx: 1202295045, lsn: AAB1/D31E6CD0, prev AAB1/D31E6C90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31351 FPW rmgr: XLOG len (rec/tot): 51/ 4407, tx: 1202295045, lsn: AAB1/D31E7E00, prev AAB1/D31E6CD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31352 FPW rmgr: XLOG len (rec/tot): 51/ 3510, tx: 1202295045, lsn: AAB1/D31E8F50, prev AAB1/D31E7E00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31070 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D31E9D08, prev AAB1/D31E8F50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31353 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D31EAE48, prev AAB1/D31E9D08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31354 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D31EBF60, prev AAB1/D31EAE48, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31356 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D31EF0C0, prev AAB1/D31ED088, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31357 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D31F4630, prev AAB1/D31F45F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31358 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D31F5748, prev AAB1/D31F4630, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31359 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D31F6878, prev AAB1/D31F5748, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31360 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D31F7998, prev AAB1/D31F6878, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31361 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D31F8AB8, prev AAB1/D31F7998, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31362 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D31F9BC0, prev AAB1/D31F8AB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31363 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D31FB808, prev AAB1/D31FACE0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31364 FPW rmgr: XLOG len (rec/tot): 51/ 4374, tx: 1202295045, lsn: AAB1/D32003C0, prev AAB1/D3200380, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31365 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D3206C90, prev AAB1/D3206C50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31366 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D3209D00, prev AAB1/D3209CC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31367 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D320AE28, prev AAB1/D3209D00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31368 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D320BF28, prev AAB1/D320AE28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31369 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D320D048, prev AAB1/D320BF28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31370 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D320E158, prev AAB1/D320D048, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31371 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D320F248, prev AAB1/D320E158, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31372 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D3210350, prev AAB1/D320F248, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31373 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D3213250, prev AAB1/D3213210, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31374 FPW rmgr: XLOG len (rec/tot): 51/ 4339, tx: 1202295045, lsn: AAB1/D3214360, prev AAB1/D3213250, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31375 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D3215458, prev AAB1/D3214360, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31376 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D3216560, prev AAB1/D3215458, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31377 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D32180A0, prev AAB1/D3218060, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31378 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D32191B0, prev AAB1/D32180A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31379 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D321AC80, prev AAB1/D321A2C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31380 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D321BD88, prev AAB1/D321AC80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31381 FPW rmgr: XLOG len (rec/tot): 51/ 4347, tx: 1202295045, lsn: AAB1/D321D878, prev AAB1/D321D838, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31382 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D321F438, prev AAB1/D321E990, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31383 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D32261C0, prev AAB1/D3226180, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31384 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D322C348, prev AAB1/D322C308, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31385 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D322D450, prev AAB1/D322C348, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31386 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D322E578, prev AAB1/D322D450, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31387 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D3230A90, prev AAB1/D322FFA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31388 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D3232478, prev AAB1/D3231B98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31389 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3236FA0, prev AAB1/D3236F60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31390 FPW rmgr: XLOG len (rec/tot): 51/ 4336, tx: 1202295045, lsn: AAB1/D32380C8, prev AAB1/D3236FA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31391 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D32391B8, prev AAB1/D32380C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31392 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D323AE40, prev AAB1/D323A2D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31393 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D323BF40, prev AAB1/D323AE40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31394 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D323D950, prev AAB1/D323D918, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31395 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D323EA60, prev AAB1/D323D950, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31396 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D323FB58, prev AAB1/D323EA60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31397 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D32417A8, prev AAB1/D3241768, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31398 FPW rmgr: XLOG len (rec/tot): 51/ 4327, tx: 1202295045, lsn: AAB1/D32428B0, prev AAB1/D32417A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31399 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D3243998, prev AAB1/D32428B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31400 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3248458, prev AAB1/D3248418, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31401 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D324D240, prev AAB1/D324D200, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31402 FPW rmgr: XLOG len (rec/tot): 51/ 4311, tx: 1202295045, lsn: AAB1/D3252070, prev AAB1/D3252030, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31403 FPW rmgr: XLOG len (rec/tot): 51/ 4322, tx: 1202295045, lsn: AAB1/D3255178, prev AAB1/D3253148, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31404 FPW rmgr: XLOG len (rec/tot): 51/ 4334, tx: 1202295045, lsn: AAB1/D3259F18, prev AAB1/D3259ED8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31405 FPW rmgr: XLOG len (rec/tot): 51/ 4295, tx: 1202295045, lsn: AAB1/D325CF08, prev AAB1/D325B020, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31406 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D325EA68, prev AAB1/D325DFD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31407 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D325FB50, prev AAB1/D325EA68, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31408 FPW rmgr: XLOG len (rec/tot): 51/ 4308, tx: 1202295045, lsn: AAB1/D3260C58, prev AAB1/D325FB50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31409 FPW rmgr: XLOG len (rec/tot): 51/ 4316, tx: 1202295045, lsn: AAB1/D32627B0, prev AAB1/D3261D30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31410 FPW rmgr: XLOG len (rec/tot): 51/ 4323, tx: 1202295045, lsn: AAB1/D3263890, prev AAB1/D32627B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31411 FPW rmgr: XLOG len (rec/tot): 51/ 4321, tx: 1202295045, lsn: AAB1/D3264990, prev AAB1/D3263890, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31412 FPW rmgr: XLOG len (rec/tot): 51/ 4304, tx: 1202295045, lsn: AAB1/D3265A78, prev AAB1/D3264990, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31413 FPW rmgr: XLOG len (rec/tot): 51/ 4312, tx: 1202295045, lsn: AAB1/D3267698, prev AAB1/D3266B60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31414 FPW rmgr: XLOG len (rec/tot): 51/ 4324, tx: 1202295045, lsn: AAB1/D3268788, prev AAB1/D3267698, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31415 FPW rmgr: XLOG len (rec/tot): 51/ 4330, tx: 1202295045, lsn: AAB1/D3269870, prev AAB1/D3268788, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31416 FPW rmgr: XLOG len (rec/tot): 51/ 4314, tx: 1202295045, lsn: AAB1/D326A978, prev AAB1/D3269870, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31417 FPW rmgr: XLOG len (rec/tot): 51/ 4332, tx: 1202295045, lsn: AAB1/D326F8D8, prev AAB1/D326F898, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31418 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D3274908, prev AAB1/D32748C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31419 FPW rmgr: XLOG len (rec/tot): 51/ 4334, tx: 1202295045, lsn: AAB1/D3279598, prev AAB1/D3279558, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31420 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D327A6A0, prev AAB1/D3279598, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31421 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D327F2C8, prev AAB1/D327D4A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31422 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D32803D8, prev AAB1/D327F2C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31423 FPW rmgr: XLOG len (rec/tot): 51/ 4348, tx: 1202295045, lsn: AAB1/D32814F0, prev AAB1/D32803D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31424 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D3282608, prev AAB1/D32814F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31425 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D3283718, prev AAB1/D3282608, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31426 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D3284900, prev AAB1/D3284888, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31427 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D3285A30, prev AAB1/D3285A00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31428 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D3286C28, prev AAB1/D3286BF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31429 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D3287D40, prev AAB1/D3286C28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31430 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D3288E60, prev AAB1/D3287D40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31431 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D3289F68, prev AAB1/D3288E60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31432 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D328B090, prev AAB1/D3289F68, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31433 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D328C1C0, prev AAB1/D328B090, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31434 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D328D2B8, prev AAB1/D328C1C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31435 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D328EF78, prev AAB1/D328E3E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31436 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D3293CC8, prev AAB1/D3293C88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31437 FPW rmgr: XLOG len (rec/tot): 51/ 4337, tx: 1202295045, lsn: AAB1/D329ACD0, prev AAB1/D329AC90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31438 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D329DBF8, prev AAB1/D329DBB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31439 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D329F860, prev AAB1/D329ED30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31440 FPW rmgr: XLOG len (rec/tot): 51/ 4347, tx: 1202295045, lsn: AAB1/D32A0980, prev AAB1/D329F860, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31441 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D32A1A80, prev AAB1/D32A0980, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31442 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D32A4C10, prev AAB1/D32A4BD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31443 FPW rmgr: XLOG len (rec/tot): 51/ 4327, tx: 1202295045, lsn: AAB1/D32A7CA0, prev AAB1/D32A7C60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31444 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D32A8DA0, prev AAB1/D32A7CA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31445 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D32AAA00, prev AAB1/D32AA9C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31446 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D32ABB00, prev AAB1/D32AAA00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31447 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D32ACC18, prev AAB1/D32ABB00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31448 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D32ADD10, prev AAB1/D32ACC18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31449 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D32AEE38, prev AAB1/D32ADD10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31450 FPW rmgr: XLOG len (rec/tot): 51/ 4347, tx: 1202295045, lsn: AAB1/D32AFF48, prev AAB1/D32AEE38, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31451 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D32B1060, prev AAB1/D32AFF48, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31452 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D32B2180, prev AAB1/D32B1060, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31453 FPW rmgr: XLOG len (rec/tot): 51/ 4399, tx: 1202295045, lsn: AAB1/D32B3C98, prev AAB1/D32B3298, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31454 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D32B8A38, prev AAB1/D32B89F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31455 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D32BECF0, prev AAB1/D32BECB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31456 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D32C1B80, prev AAB1/D32C1B40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31457 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D32C2CB0, prev AAB1/D32C1B80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31458 FPW rmgr: XLOG len (rec/tot): 51/ 4394, tx: 1202295045, lsn: AAB1/D32C8E30, prev AAB1/D32C8DF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31459 FPW rmgr: XLOG len (rec/tot): 51/ 4389, tx: 1202295045, lsn: AAB1/D32CAA48, prev AAB1/D32C9F60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31460 FPW rmgr: XLOG len (rec/tot): 51/ 4399, tx: 1202295045, lsn: AAB1/D32CC578, prev AAB1/D32CC538, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31461 FPW rmgr: XLOG len (rec/tot): 51/ 4385, tx: 1202295045, lsn: AAB1/D32CD6A8, prev AAB1/D32CC578, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31462 FPW rmgr: XLOG len (rec/tot): 51/ 4413, tx: 1202295045, lsn: AAB1/D32CE7E8, prev AAB1/D32CD6A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31463 FPW rmgr: XLOG len (rec/tot): 51/ 4405, tx: 1202295045, lsn: AAB1/D32CF928, prev AAB1/D32CE7E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31464 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D32D0A78, prev AAB1/D32CF928, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31465 FPW rmgr: XLOG len (rec/tot): 51/ 4403, tx: 1202295045, lsn: AAB1/D32D1BA0, prev AAB1/D32D0A78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31466 FPW rmgr: XLOG len (rec/tot): 51/ 4395, tx: 1202295045, lsn: AAB1/D32D2CF0, prev AAB1/D32D1BA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31467 FPW rmgr: XLOG len (rec/tot): 51/ 4407, tx: 1202295045, lsn: AAB1/D32D3E20, prev AAB1/D32D2CF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31468 FPW rmgr: XLOG len (rec/tot): 51/ 4398, tx: 1202295045, lsn: AAB1/D32D4F70, prev AAB1/D32D3E20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31469 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D32D60B8, prev AAB1/D32D4F70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31470 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D32D71E0, prev AAB1/D32D60B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31471 FPW rmgr: XLOG len (rec/tot): 51/ 4403, tx: 1202295045, lsn: AAB1/D32D8318, prev AAB1/D32D71E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31472 FPW rmgr: XLOG len (rec/tot): 51/ 4428, tx: 1202295045, lsn: AAB1/D32DCF78, prev AAB1/D32DCF38, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31473 FPW rmgr: XLOG len (rec/tot): 51/ 4401, tx: 1202295045, lsn: AAB1/D32E3D20, prev AAB1/D32E3CE0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31474 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D32E6EB0, prev AAB1/D32E6E70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31475 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D32EBAB8, prev AAB1/D32E9D30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31476 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D32EE568, prev AAB1/D32ECC00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31477 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D32EF688, prev AAB1/D32EE568, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31478 FPW rmgr: XLOG len (rec/tot): 51/ 4406, tx: 1202295045, lsn: AAB1/D32F12C8, prev AAB1/D32F07C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31479 FPW rmgr: XLOG len (rec/tot): 51/ 4399, tx: 1202295045, lsn: AAB1/D32F2418, prev AAB1/D32F12C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31480 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D32F3548, prev AAB1/D32F2418, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31481 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D32F4670, prev AAB1/D32F3548, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31482 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D32F5788, prev AAB1/D32F4670, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31483 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D32F68D0, prev AAB1/D32F5788, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31484 FPW rmgr: XLOG len (rec/tot): 51/ 4404, tx: 1202295045, lsn: AAB1/D32F79E0, prev AAB1/D32F68D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31485 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D32F8B30, prev AAB1/D32F79E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31486 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D32F9C40, prev AAB1/D32F8B30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31487 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D32FAD78, prev AAB1/D32F9C40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31488 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D32FBE98, prev AAB1/D32FAD78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31489 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D32FCFC0, prev AAB1/D32FBE98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31490 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D32FE0E0, prev AAB1/D32FCFC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31491 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D3301028, prev AAB1/D32FF1D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31492 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D3303EA0, prev AAB1/D3303E60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31493 FPW rmgr: XLOG len (rec/tot): 51/ 4337, tx: 1202295045, lsn: AAB1/D3308C58, prev AAB1/D3308C18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31494 FPW rmgr: XLOG len (rec/tot): 51/ 4317, tx: 1202295045, lsn: AAB1/D330F8B8, prev AAB1/D330F878, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31495 FPW rmgr: XLOG len (rec/tot): 51/ 4330, tx: 1202295045, lsn: AAB1/D33109B0, prev AAB1/D330F8B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31496 FPW rmgr: XLOG len (rec/tot): 51/ 4322, tx: 1202295045, lsn: AAB1/D3311AA0, prev AAB1/D33109B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31497 FPW rmgr: XLOG len (rec/tot): 51/ 4337, tx: 1202295045, lsn: AAB1/D3313610, prev AAB1/D3312BA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31498 FPW rmgr: XLOG len (rec/tot): 51/ 4314, tx: 1202295045, lsn: AAB1/D3315008, prev AAB1/D3314F88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31499 FPW rmgr: XLOG len (rec/tot): 51/ 4328, tx: 1202295045, lsn: AAB1/D3316100, prev AAB1/D3315008, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31500 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D3318D90, prev AAB1/D3318D60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31501 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D3319E90, prev AAB1/D3318D90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31502 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D331AFA0, prev AAB1/D3319E90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31503 FPW rmgr: XLOG len (rec/tot): 51/ 4390, tx: 1202295045, lsn: AAB1/D331C0C0, prev AAB1/D331AFA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31504 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D331D1E8, prev AAB1/D331C0C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31505 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D331E300, prev AAB1/D331D1E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31506 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D331F3F8, prev AAB1/D331E300, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31507 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3320518, prev AAB1/D331F3F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31508 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D3321628, prev AAB1/D3320518, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31509 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D33245D8, prev AAB1/D3324598, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31510 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D33274E8, prev AAB1/D33274B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31511 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D332E138, prev AAB1/D332E0F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31512 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D3335B58, prev AAB1/D3335AE0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31513 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D3337698, prev AAB1/D3337618, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31514 FPW rmgr: XLOG len (rec/tot): 51/ 4347, tx: 1202295045, lsn: AAB1/D3339538, prev AAB1/D3339500, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31515 FPW rmgr: XLOG len (rec/tot): 51/ 4323, tx: 1202295045, lsn: AAB1/D333A6F8, prev AAB1/D333A6C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31516 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D333B7E0, prev AAB1/D333A6F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31517 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D333C900, prev AAB1/D333B7E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31518 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D333DA18, prev AAB1/D333C900, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31519 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D333EB40, prev AAB1/D333DA18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31520 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D333FC58, prev AAB1/D333EB40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31521 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D3340D88, prev AAB1/D333FC58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31522 FPW rmgr: XLOG len (rec/tot): 51/ 4330, tx: 1202295045, lsn: AAB1/D3341E90, prev AAB1/D3340D88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31523 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3342F98, prev AAB1/D3341E90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31524 FPW rmgr: XLOG len (rec/tot): 51/ 4348, tx: 1202295045, lsn: AAB1/D3347A98, prev AAB1/D3347A58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31525 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D3348BB0, prev AAB1/D3347A98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31526 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D3349CB8, prev AAB1/D3348BB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31527 FPW rmgr: XLOG len (rec/tot): 51/ 4339, tx: 1202295045, lsn: AAB1/D334ADD8, prev AAB1/D3349CB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31528 FPW rmgr: XLOG len (rec/tot): 51/ 4343, tx: 1202295045, lsn: AAB1/D334DF00, prev AAB1/D334DEC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31529 FPW rmgr: XLOG len (rec/tot): 51/ 4309, tx: 1202295045, lsn: AAB1/D3352EB8, prev AAB1/D3352E78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31530 FPW rmgr: XLOG len (rec/tot): 51/ 4332, tx: 1202295045, lsn: AAB1/D3357FF8, prev AAB1/D3357FB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31531 FPW rmgr: XLOG len (rec/tot): 51/ 4348, tx: 1202295045, lsn: AAB1/D335B098, prev AAB1/D335B058, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31532 FPW rmgr: XLOG len (rec/tot): 51/ 4332, tx: 1202295045, lsn: AAB1/D335C1B0, prev AAB1/D335B098, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31533 FPW rmgr: XLOG len (rec/tot): 51/ 4322, tx: 1202295045, lsn: AAB1/D335D2A0, prev AAB1/D335C1B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31534 FPW rmgr: XLOG len (rec/tot): 51/ 4307, tx: 1202295045, lsn: AAB1/D335E3A0, prev AAB1/D335D2A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31535 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D335F478, prev AAB1/D335E3A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31536 FPW rmgr: XLOG len (rec/tot): 51/ 4327, tx: 1202295045, lsn: AAB1/D3360580, prev AAB1/D335F478, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31537 FPW rmgr: XLOG len (rec/tot): 51/ 4320, tx: 1202295045, lsn: AAB1/D3361748, prev AAB1/D3361718, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31538 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D3362840, prev AAB1/D3361748, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31539 FPW rmgr: XLOG len (rec/tot): 51/ 4322, tx: 1202295045, lsn: AAB1/D3363950, prev AAB1/D3362840, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31540 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D33665A8, prev AAB1/D3366568, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31541 FPW rmgr: XLOG len (rec/tot): 51/ 4327, tx: 1202295045, lsn: AAB1/D336CD48, prev AAB1/D336CD10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31542 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D336DE30, prev AAB1/D336CD48, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31543 FPW rmgr: XLOG len (rec/tot): 51/ 4348, tx: 1202295045, lsn: AAB1/D336EF48, prev AAB1/D336DE30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31544 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D3370060, prev AAB1/D336EF48, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31545 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D3371168, prev AAB1/D3370060, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31546 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D3375C60, prev AAB1/D3375C20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31547 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D337C8E0, prev AAB1/D337C8A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31548 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D337F770, prev AAB1/D337F730, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31549 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D33808A8, prev AAB1/D337F770, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31550 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D33824F8, prev AAB1/D33819C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31551 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D3383608, prev AAB1/D33824F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31552 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D3384730, prev AAB1/D3383608, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31553 FPW rmgr: XLOG len (rec/tot): 51/ 4374, tx: 1202295045, lsn: AAB1/D3385860, prev AAB1/D3384730, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31554 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3386990, prev AAB1/D3385860, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31555 FPW rmgr: XLOG len (rec/tot): 51/ 4394, tx: 1202295045, lsn: AAB1/D3387AB0, prev AAB1/D3386990, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31556 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D3388BF8, prev AAB1/D3387AB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31557 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D338C828, prev AAB1/D338B7C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31558 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D338FC98, prev AAB1/D338F298, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31559 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D3390DC8, prev AAB1/D338FC98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31560 FPW rmgr: XLOG len (rec/tot): 51/ 4386, tx: 1202295045, lsn: AAB1/D3391EE0, prev AAB1/D3390DC8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31561 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D3393020, prev AAB1/D3391EE0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31562 FPW rmgr: XLOG len (rec/tot): 51/ 4392, tx: 1202295045, lsn: AAB1/D3397D08, prev AAB1/D3397CC8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31563 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D339ECF0, prev AAB1/D339ECB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31564 FPW rmgr: XLOG len (rec/tot): 51/ 4391, tx: 1202295045, lsn: AAB1/D33A1CE8, prev AAB1/D33A1CA8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31565 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D33A2E28, prev AAB1/D33A1CE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31566 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D33A3FB0, prev AAB1/D33A3F40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31567 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D33A5E70, prev AAB1/D33A5E40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31568 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D33A6F88, prev AAB1/D33A5E70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31569 FPW rmgr: XLOG len (rec/tot): 51/ 4337, tx: 1202295045, lsn: AAB1/D33A80A8, prev AAB1/D33A6F88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31570 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D33A91A0, prev AAB1/D33A80A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31571 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D33AFF10, prev AAB1/D33AFED0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31572 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D33B3060, prev AAB1/D33B3020, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31573 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D33B4C48, prev AAB1/D33B4168, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31574 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D33B5DA8, prev AAB1/D33B5D70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31575 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D33B97B0, prev AAB1/D33B9770, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31576 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D33BD4A8, prev AAB1/D33BC918, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31577 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D33C0598, prev AAB1/D33C0558, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31578 FPW rmgr: XLOG len (rec/tot): 51/ 4317, tx: 1202295045, lsn: AAB1/D33C9378, prev AAB1/D33C9338, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31579 FPW rmgr: XLOG len (rec/tot): 51/ 4312, tx: 1202295045, lsn: AAB1/D33D01E8, prev AAB1/D33D01A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31580 FPW rmgr: XLOG len (rec/tot): 51/ 4334, tx: 1202295045, lsn: AAB1/D33D5268, prev AAB1/D33D5230, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31581 FPW rmgr: XLOG len (rec/tot): 51/ 4328, tx: 1202295045, lsn: AAB1/D33D8B30, prev AAB1/D33D8AF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31582 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D33D9C18, prev AAB1/D33D8B30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31583 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D33DCA48, prev AAB1/D33DCA10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31584 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D33E0278, prev AAB1/D33E0238, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31585 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D33E1378, prev AAB1/D33E0278, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31586 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D33E63F8, prev AAB1/D33E44C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31587 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D33E9780, prev AAB1/D33E9740, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31588 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D33ECD90, prev AAB1/D33ECD50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31589 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D33EDEA8, prev AAB1/D33ECD90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31590 FPW rmgr: XLOG len (rec/tot): 51/ 4348, tx: 1202295045, lsn: AAB1/D33F1000, prev AAB1/D33F0FC8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31591 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D33F4288, prev AAB1/D33F4250, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31592 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D33F5390, prev AAB1/D33F4288, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31593 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D33F8B18, prev AAB1/D33F8AD8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31594 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D33FE820, prev AAB1/D33FE7E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31595 FPW rmgr: XLOG len (rec/tot): 51/ 4334, tx: 1202295045, lsn: AAB1/D3407490, prev AAB1/D3407450, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31596 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D340C458, prev AAB1/D340C420, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31597 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D340FE80, prev AAB1/D340FE40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31598 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D3413DC8, prev AAB1/D3413290, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31599 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D3416AC8, prev AAB1/D3416A90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31600 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D341B660, prev AAB1/D341B588, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31601 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D341D4C8, prev AAB1/D341D450, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31602 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D341E5E0, prev AAB1/D341D4C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31603 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D34228F8, prev AAB1/D34228B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31604 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D34253B8, prev AAB1/D3425378, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31605 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D3427D40, prev AAB1/D3427CC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31606 FPW rmgr: XLOG len (rec/tot): 51/ 4348, tx: 1202295045, lsn: AAB1/D3429AC8, prev AAB1/D3428E50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31607 FPW rmgr: XLOG len (rec/tot): 51/ 4334, tx: 1202295045, lsn: AAB1/D342ACC0, prev AAB1/D342AC90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31608 FPW rmgr: XLOG len (rec/tot): 51/ 4332, tx: 1202295045, lsn: AAB1/D342BDB0, prev AAB1/D342ACC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31609 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D342D9E8, prev AAB1/D342CEB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31610 FPW rmgr: XLOG len (rec/tot): 51/ 4327, tx: 1202295045, lsn: AAB1/D3432440, prev AAB1/D3430438, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31611 FPW rmgr: XLOG len (rec/tot): 51/ 4288, tx: 1202295045, lsn: AAB1/D3438D08, prev AAB1/D3438CC8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31612 FPW rmgr: XLOG len (rec/tot): 51/ 4308, tx: 1202295045, lsn: AAB1/D343E4E0, prev AAB1/D343E4A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31613 FPW rmgr: XLOG len (rec/tot): 51/ 4310, tx: 1202295045, lsn: AAB1/D343F5B8, prev AAB1/D343E4E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31614 FPW rmgr: XLOG len (rec/tot): 51/ 4303, tx: 1202295045, lsn: AAB1/D34406A8, prev AAB1/D343F5B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31615 FPW rmgr: XLOG len (rec/tot): 51/ 4288, tx: 1202295045, lsn: AAB1/D3441778, prev AAB1/D34406A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31616 FPW rmgr: XLOG len (rec/tot): 51/ 4323, tx: 1202295045, lsn: AAB1/D3442850, prev AAB1/D3441778, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31617 FPW rmgr: XLOG len (rec/tot): 51/ 4302, tx: 1202295045, lsn: AAB1/D3443938, prev AAB1/D3442850, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31618 FPW rmgr: XLOG len (rec/tot): 51/ 4319, tx: 1202295045, lsn: AAB1/D3444A20, prev AAB1/D3443938, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31619 FPW rmgr: XLOG len (rec/tot): 51/ 4310, tx: 1202295045, lsn: AAB1/D3449AD0, prev AAB1/D3449A90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31620 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D344CA90, prev AAB1/D344CA58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31621 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D344DB78, prev AAB1/D344CA90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31622 FPW rmgr: XLOG len (rec/tot): 51/ 4304, tx: 1202295045, lsn: AAB1/D344EC88, prev AAB1/D344DB78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31623 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D344FD58, prev AAB1/D344EC88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31624 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D3450E80, prev AAB1/D344FD58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31625 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D3451F88, prev AAB1/D3450E80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31626 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D34530A8, prev AAB1/D3451F88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31627 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D34541C8, prev AAB1/D34530A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31628 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D34552E8, prev AAB1/D34541C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31629 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D3458120, prev AAB1/D34580E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31630 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D345CAF0, prev AAB1/D345CAB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31631 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D345FC18, prev AAB1/D345FBD8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31632 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D3463FD0, prev AAB1/D3463F90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31633 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D3465C48, prev AAB1/D34650F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31634 FPW rmgr: XLOG len (rec/tot): 51/ 4392, tx: 1202295045, lsn: AAB1/D3466D80, prev AAB1/D3465C48, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31635 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D3468A70, prev AAB1/D3467EA8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31636 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D346B948, prev AAB1/D346B908, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31637 FPW rmgr: XLOG len (rec/tot): 51/ 3502, tx: 1202295045, lsn: AAB1/D346E740, prev AAB1/D346CA70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31355 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D346F4F0, prev AAB1/D346E740, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31638 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D3470628, prev AAB1/D346F4F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31639 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D3471738, prev AAB1/D3470628, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31641 FPW rmgr: XLOG len (rec/tot): 51/ 4389, tx: 1202295045, lsn: AAB1/D3472858, prev AAB1/D3471738, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31642 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D3473980, prev AAB1/D3472858, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31643 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D3474AB8, prev AAB1/D3473980, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31644 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3475CB0, prev AAB1/D3475C80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31645 FPW rmgr: XLOG len (rec/tot): 51/ 4386, tx: 1202295045, lsn: AAB1/D3476DE8, prev AAB1/D3475CB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31646 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3477F10, prev AAB1/D3476DE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31647 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D347CC30, prev AAB1/D347CBF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31648 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D347F680, prev AAB1/D347F640, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31649 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D34866D0, prev AAB1/D3486690, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31650 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D34877E0, prev AAB1/D34866D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31651 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D34888F0, prev AAB1/D34877E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31652 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D348D3B8, prev AAB1/D348D380, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31653 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D348E4E0, prev AAB1/D348D3B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31654 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D348F5E8, prev AAB1/D348E4E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31655 FPW rmgr: XLOG len (rec/tot): 51/ 4394, tx: 1202295045, lsn: AAB1/D34908A0, prev AAB1/D3490870, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31656 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D34919D0, prev AAB1/D34908A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31657 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D3492B00, prev AAB1/D34919D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31658 FPW rmgr: XLOG len (rec/tot): 51/ 4386, tx: 1202295045, lsn: AAB1/D3493C20, prev AAB1/D3492B00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31659 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D3494D60, prev AAB1/D3493C20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31660 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D3495E60, prev AAB1/D3494D60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31661 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D3496F90, prev AAB1/D3495E60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31662 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D34980C0, prev AAB1/D3496F90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31663 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D34991C8, prev AAB1/D34980C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31664 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D349A2F8, prev AAB1/D34991C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31665 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D349B408, prev AAB1/D349A2F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31666 FPW rmgr: XLOG len (rec/tot): 51/ 4385, tx: 1202295045, lsn: AAB1/D349FDB8, prev AAB1/D349FD78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31667 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D34A2F30, prev AAB1/D34A2EF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31668 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D34A9A60, prev AAB1/D34A9A20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31669 FPW rmgr: XLOG len (rec/tot): 51/ 4391, tx: 1202295045, lsn: AAB1/D34AC6B0, prev AAB1/D34AC670, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31670 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D34AD7D8, prev AAB1/D34AC6B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31671 FPW rmgr: XLOG len (rec/tot): 51/ 4390, tx: 1202295045, lsn: AAB1/D34AE910, prev AAB1/D34AD7D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31672 FPW rmgr: XLOG len (rec/tot): 51/ 4399, tx: 1202295045, lsn: AAB1/D34AFA38, prev AAB1/D34AE910, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31673 FPW rmgr: XLOG len (rec/tot): 51/ 4398, tx: 1202295045, lsn: AAB1/D34B0B80, prev AAB1/D34AFA38, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31674 FPW rmgr: XLOG len (rec/tot): 51/ 4391, tx: 1202295045, lsn: AAB1/D34B2878, prev AAB1/D34B2838, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31675 FPW rmgr: XLOG len (rec/tot): 51/ 4414, tx: 1202295045, lsn: AAB1/D34B39A0, prev AAB1/D34B2878, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31676 FPW rmgr: XLOG len (rec/tot): 51/ 4400, tx: 1202295045, lsn: AAB1/D34B4AF8, prev AAB1/D34B39A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31677 FPW rmgr: XLOG len (rec/tot): 51/ 4411, tx: 1202295045, lsn: AAB1/D34B5C28, prev AAB1/D34B4AF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31678 FPW rmgr: XLOG len (rec/tot): 51/ 4390, tx: 1202295045, lsn: AAB1/D34B6D80, prev AAB1/D34B5C28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31679 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D34B7EA8, prev AAB1/D34B6D80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31680 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D34B9AF0, prev AAB1/D34B8FE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31681 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D34BB7E0, prev AAB1/D34BAC18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31682 FPW rmgr: XLOG len (rec/tot): 51/ 4397, tx: 1202295045, lsn: AAB1/D34BC910, prev AAB1/D34BB7E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31683 FPW rmgr: XLOG len (rec/tot): 51/ 4402, tx: 1202295045, lsn: AAB1/D34BE558, prev AAB1/D34BDA40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31684 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D34BF690, prev AAB1/D34BE558, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31685 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D34C2820, prev AAB1/D34C27E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31686 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D34C7728, prev AAB1/D34C76E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31687 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D34CC078, prev AAB1/D34CC038, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31688 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D34CD1A0, prev AAB1/D34CC078, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31689 FPW rmgr: XLOG len (rec/tot): 51/ 4385, tx: 1202295045, lsn: AAB1/D34CFED8, prev AAB1/D34CFE98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31690 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D34D1018, prev AAB1/D34CFED8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31691 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D34D2150, prev AAB1/D34D1018, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31692 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D34D3270, prev AAB1/D34D2150, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31693 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D34D43A8, prev AAB1/D34D3270, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31694 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D34D54B8, prev AAB1/D34D43A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31695 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D34D65D0, prev AAB1/D34D54B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31696 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D34D76C8, prev AAB1/D34D65D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31697 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D34D87F0, prev AAB1/D34D76C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31698 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D34D98F8, prev AAB1/D34D87F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31699 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D34DAA28, prev AAB1/D34D98F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31700 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D34DDA10, prev AAB1/D34DD9D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31701 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D34E0B58, prev AAB1/D34E0B18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31702 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D34E1C60, prev AAB1/D34E0B58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31703 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D34E3818, prev AAB1/D34E2D80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31704 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D34E5370, prev AAB1/D34E4950, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31705 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D34E6488, prev AAB1/D34E5370, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31706 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D34E8F30, prev AAB1/D34E8EF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31707 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D34EDDC0, prev AAB1/D34EDD80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31708 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D34F4748, prev AAB1/D34F4708, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31709 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D34F5858, prev AAB1/D34F4748, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31710 FPW rmgr: XLOG len (rec/tot): 51/ 4433, tx: 1202295045, lsn: AAB1/D34F6990, prev AAB1/D34F5858, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31711 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D34F7AE8, prev AAB1/D34F6990, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31712 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D34F8C18, prev AAB1/D34F7AE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31713 FPW rmgr: XLOG len (rec/tot): 51/ 4398, tx: 1202295045, lsn: AAB1/D34F9D30, prev AAB1/D34F8C18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31714 FPW rmgr: XLOG len (rec/tot): 51/ 4416, tx: 1202295045, lsn: AAB1/D34FAE78, prev AAB1/D34F9D30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31715 FPW rmgr: XLOG len (rec/tot): 51/ 4390, tx: 1202295045, lsn: AAB1/D34FBFB8, prev AAB1/D34FAE78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31716 FPW rmgr: XLOG len (rec/tot): 51/ 4402, tx: 1202295045, lsn: AAB1/D3501068, prev AAB1/D34FF078, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31717 FPW rmgr: XLOG len (rec/tot): 51/ 4389, tx: 1202295045, lsn: AAB1/D35021B8, prev AAB1/D3501068, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31718 FPW rmgr: XLOG len (rec/tot): 51/ 4406, tx: 1202295045, lsn: AAB1/D35032E0, prev AAB1/D35021B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31719 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D3504FC8, prev AAB1/D3504F88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31720 FPW rmgr: XLOG len (rec/tot): 51/ 4401, tx: 1202295045, lsn: AAB1/D3506110, prev AAB1/D3504FC8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31721 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D350E6F0, prev AAB1/D350E6B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31722 FPW rmgr: XLOG len (rec/tot): 51/ 4410, tx: 1202295045, lsn: AAB1/D351A0C0, prev AAB1/D351A080, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31723 FPW rmgr: XLOG len (rec/tot): 51/ 4391, tx: 1202295045, lsn: AAB1/D351B200, prev AAB1/D351A0C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31724 FPW rmgr: XLOG len (rec/tot): 51/ 4390, tx: 1202295045, lsn: AAB1/D351C340, prev AAB1/D351B200, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31725 FPW rmgr: XLOG len (rec/tot): 51/ 4406, tx: 1202295045, lsn: AAB1/D351D468, prev AAB1/D351C340, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31726 FPW rmgr: XLOG len (rec/tot): 51/ 4406, tx: 1202295045, lsn: AAB1/D351E5B8, prev AAB1/D351D468, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31727 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D351F6F0, prev AAB1/D351E5B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31728 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D3520830, prev AAB1/D351F6F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31729 FPW rmgr: XLOG len (rec/tot): 51/ 4401, tx: 1202295045, lsn: AAB1/D3521958, prev AAB1/D3520830, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31730 FPW rmgr: XLOG len (rec/tot): 51/ 4395, tx: 1202295045, lsn: AAB1/D3522AA8, prev AAB1/D3521958, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31731 FPW rmgr: XLOG len (rec/tot): 51/ 4430, tx: 1202295045, lsn: AAB1/D3525B98, prev AAB1/D3525B58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31732 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D3526D00, prev AAB1/D3525B98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31733 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D3527E20, prev AAB1/D3526D00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31734 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D3528F50, prev AAB1/D3527E20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31735 FPW rmgr: XLOG len (rec/tot): 51/ 4386, tx: 1202295045, lsn: AAB1/D352BF90, prev AAB1/D352BF50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31736 FPW rmgr: XLOG len (rec/tot): 51/ 4394, tx: 1202295045, lsn: AAB1/D3532D40, prev AAB1/D3532D00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31737 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D3536108, prev AAB1/D35360C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31738 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D35398D8, prev AAB1/D3538D98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31739 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D353AA00, prev AAB1/D35398D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31740 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D353C660, prev AAB1/D353C620, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31741 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D353D768, prev AAB1/D353C660, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31742 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D353E888, prev AAB1/D353D768, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31743 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D353F998, prev AAB1/D353E888, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31744 FPW rmgr: XLOG len (rec/tot): 51/ 4343, tx: 1202295045, lsn: AAB1/D3542328, prev AAB1/D35422E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31745 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D3543420, prev AAB1/D3542328, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31746 FPW rmgr: XLOG len (rec/tot): 51/ 4331, tx: 1202295045, lsn: AAB1/D354B760, prev AAB1/D354AD30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31747 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D354C868, prev AAB1/D354B760, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31748 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D354D960, prev AAB1/D354C868, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31749 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D354F7A0, prev AAB1/D354F760, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31750 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D3556030, prev AAB1/D3555FD8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31751 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D355A8F0, prev AAB1/D355A8B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31752 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D355E310, prev AAB1/D355E2D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31753 FPW rmgr: XLOG len (rec/tot): 51/ 4343, tx: 1202295045, lsn: AAB1/D355F420, prev AAB1/D355E310, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31754 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D3560F10, prev AAB1/D3560ED0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31755 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D3562020, prev AAB1/D3560F10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31756 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D3563BD0, prev AAB1/D3563B90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31757 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D3564CF0, prev AAB1/D3563BD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31758 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D3565DF0, prev AAB1/D3564CF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31759 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D35679B0, prev AAB1/D3566F18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31760 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3568AE8, prev AAB1/D35679B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31761 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D356C2B8, prev AAB1/D356A698, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31762 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D356D3C0, prev AAB1/D356C2B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31763 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D356EFB8, prev AAB1/D356EF78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31764 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D3570C08, prev AAB1/D35700E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31765 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D3571D10, prev AAB1/D3570C08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31766 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3572E20, prev AAB1/D3571D10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31767 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D35749F0, prev AAB1/D3573F40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31768 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D3579968, prev AAB1/D3579928, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31769 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D35803F8, prev AAB1/D35803B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31770 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D3584C40, prev AAB1/D3584160, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31771 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D3585D50, prev AAB1/D3584C40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31772 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D3586E68, prev AAB1/D3585D50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31773 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D3588AC8, prev AAB1/D3587F68, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31774 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D3589BC8, prev AAB1/D3588AC8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31775 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D358ACF8, prev AAB1/D3589BC8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31776 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D358DE28, prev AAB1/D358BDF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31777 FPW rmgr: XLOG len (rec/tot): 51/ 4334, tx: 1202295045, lsn: AAB1/D3590F68, prev AAB1/D358EF50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31778 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D3592070, prev AAB1/D3590F68, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31779 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D3593180, prev AAB1/D3592070, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31780 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D35942A8, prev AAB1/D3593180, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31781 FPW rmgr: XLOG len (rec/tot): 51/ 4334, tx: 1202295045, lsn: AAB1/D35953A0, prev AAB1/D35942A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31782 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D3596918, prev AAB1/D35968A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31783 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D3597BA0, prev AAB1/D3597B70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31784 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D3598CB0, prev AAB1/D3597BA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31785 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D3599DA8, prev AAB1/D3598CB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31786 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D359C870, prev AAB1/D359AEB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31787 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D35A14F0, prev AAB1/D35A14B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31788 FPW rmgr: XLOG len (rec/tot): 51/ 4338, tx: 1202295045, lsn: AAB1/D35A83A0, prev AAB1/D35A8360, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31789 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D35A9498, prev AAB1/D35A83A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31790 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D35AA5A8, prev AAB1/D35A9498, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31791 FPW rmgr: XLOG len (rec/tot): 51/ 4322, tx: 1202295045, lsn: AAB1/D35AB6A0, prev AAB1/D35AA5A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31792 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D35AC7A0, prev AAB1/D35AB6A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31793 FPW rmgr: XLOG len (rec/tot): 51/ 4337, tx: 1202295045, lsn: AAB1/D35AD898, prev AAB1/D35AC7A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31794 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D35B04C8, prev AAB1/D35AE9A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31795 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D35B15C0, prev AAB1/D35B04C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31796 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D35B26C0, prev AAB1/D35B15C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31797 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D35B37D8, prev AAB1/D35B26C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31798 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D35B4900, prev AAB1/D35B37D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31799 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D35B5A10, prev AAB1/D35B4900, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31800 FPW rmgr: XLOG len (rec/tot): 51/ 4392, tx: 1202295045, lsn: AAB1/D35B6B30, prev AAB1/D35B5A10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31801 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D35B7C58, prev AAB1/D35B6B30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31802 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D35B8D80, prev AAB1/D35B7C58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31803 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D35B9E88, prev AAB1/D35B8D80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31804 FPW rmgr: XLOG len (rec/tot): 51/ 4383, tx: 1202295045, lsn: AAB1/D35BAFB0, prev AAB1/D35B9E88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31805 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D35BDDE8, prev AAB1/D35BDDA8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31806 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D35C2CE8, prev AAB1/D35C2CA8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31807 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D35C7688, prev AAB1/D35C7648, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31808 FPW rmgr: XLOG len (rec/tot): 51/ 4383, tx: 1202295045, lsn: AAB1/D35CA560, prev AAB1/D35CA520, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31809 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D35CD638, prev AAB1/D35CB680, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31810 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D35D1278, prev AAB1/D35D0720, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31811 FPW rmgr: XLOG len (rec/tot): 51/ 4383, tx: 1202295045, lsn: AAB1/D35D23B0, prev AAB1/D35D1278, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31812 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D35D34D0, prev AAB1/D35D23B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31813 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D35D45E8, prev AAB1/D35D34D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31814 FPW rmgr: XLOG len (rec/tot): 51/ 4374, tx: 1202295045, lsn: AAB1/D35D5700, prev AAB1/D35D45E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31815 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D35D6830, prev AAB1/D35D5700, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31816 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D35D7940, prev AAB1/D35D6830, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31817 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D35D8A70, prev AAB1/D35D7940, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31818 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D35DA6A0, prev AAB1/D35D9B88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31819 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D35DB7C0, prev AAB1/D35DA6A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31820 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D35DC8E0, prev AAB1/D35DB7C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31821 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D35DD9E8, prev AAB1/D35DC8E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31822 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D35DEB08, prev AAB1/D35DD9E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31823 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D35DFC20, prev AAB1/D35DEB08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31824 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D35E0D38, prev AAB1/D35DFC20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31825 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D35E7BA0, prev AAB1/D35E7B60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31826 FPW rmgr: XLOG len (rec/tot): 51/ 4336, tx: 1202295045, lsn: AAB1/D35EE090, prev AAB1/D35EC740, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31827 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D35F5148, prev AAB1/D35F3170, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31828 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D35F6258, prev AAB1/D35F5148, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31829 FPW rmgr: XLOG len (rec/tot): 51/ 4330, tx: 1202295045, lsn: AAB1/D35F7360, prev AAB1/D35F6258, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31830 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D35F8468, prev AAB1/D35F7360, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31831 FPW rmgr: XLOG len (rec/tot): 51/ 4323, tx: 1202295045, lsn: AAB1/D35F9550, prev AAB1/D35F8468, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31832 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D35FA650, prev AAB1/D35F9550, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31833 FPW rmgr: XLOG len (rec/tot): 51/ 4320, tx: 1202295045, lsn: AAB1/D35FB750, prev AAB1/D35FA650, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31834 FPW rmgr: XLOG len (rec/tot): 51/ 4341, tx: 1202295045, lsn: AAB1/D35FC928, prev AAB1/D35FC8F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31835 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D35FDA50, prev AAB1/D35FDA20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31836 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D35FEB78, prev AAB1/D35FDA50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31837 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D35FFC90, prev AAB1/D35FEB78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31838 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D3600DB0, prev AAB1/D35FFC90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31839 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D3601EB8, prev AAB1/D3600DB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31840 FPW rmgr: XLOG len (rec/tot): 51/ 4374, tx: 1202295045, lsn: AAB1/D3602FF0, prev AAB1/D3601EB8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31841 FPW rmgr: XLOG len (rec/tot): 51/ 4344, tx: 1202295045, lsn: AAB1/D3604120, prev AAB1/D3602FF0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31842 FPW rmgr: XLOG len (rec/tot): 51/ 4389, tx: 1202295045, lsn: AAB1/D3605218, prev AAB1/D3604120, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31843 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D3606358, prev AAB1/D3605218, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31844 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D3608C40, prev AAB1/D3607460, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31845 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D360D5F0, prev AAB1/D360D5B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31846 FPW rmgr: XLOG len (rec/tot): 51/ 4392, tx: 1202295045, lsn: AAB1/D3612560, prev AAB1/D3612520, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31847 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D3617628, prev AAB1/D36175E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31848 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D3618750, prev AAB1/D3617628, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31849 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D3619858, prev AAB1/D3618750, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31850 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D361A998, prev AAB1/D3619858, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31851 FPW rmgr: XLOG len (rec/tot): 51/ 4385, tx: 1202295045, lsn: AAB1/D361C690, prev AAB1/D361BAB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31852 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D361E2A0, prev AAB1/D361D7B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31853 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D361F3B8, prev AAB1/D361E2A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31854 FPW rmgr: XLOG len (rec/tot): 51/ 4398, tx: 1202295045, lsn: AAB1/D36204E8, prev AAB1/D361F3B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31855 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D3621618, prev AAB1/D36204E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31856 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D3622820, prev AAB1/D36227F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31857 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D3623950, prev AAB1/D3622820, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31858 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D3624A90, prev AAB1/D3623950, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31859 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D3625BA8, prev AAB1/D3624A90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31860 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D3626CE8, prev AAB1/D3625BA8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31861 FPW rmgr: XLOG len (rec/tot): 51/ 4386, tx: 1202295045, lsn: AAB1/D3627DF8, prev AAB1/D3626CE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31862 FPW rmgr: XLOG len (rec/tot): 51/ 4400, tx: 1202295045, lsn: AAB1/D3628F38, prev AAB1/D3627DF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31863 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D362A080, prev AAB1/D3628F38, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31864 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D362B198, prev AAB1/D362A080, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31865 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D362E238, prev AAB1/D362E1F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31866 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D36312A0, prev AAB1/D3631260, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31867 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D36380D0, prev AAB1/D3638090, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31868 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D363B230, prev AAB1/D363B1F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31869 FPW rmgr: XLOG len (rec/tot): 51/ 4340, tx: 1202295045, lsn: AAB1/D363C368, prev AAB1/D363B230, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31870 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D363D460, prev AAB1/D363C368, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31871 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D363E588, prev AAB1/D363D460, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31872 FPW rmgr: XLOG len (rec/tot): 51/ 4375, tx: 1202295045, lsn: AAB1/D3640288, prev AAB1/D363F698, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31873 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D36413A0, prev AAB1/D3640288, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31874 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D36424D8, prev AAB1/D36413A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31875 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D36474E8, prev AAB1/D3645588, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31876 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D364A110, prev AAB1/D364A0D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31877 FPW rmgr: XLOG len (rec/tot): 51/ 4378, tx: 1202295045, lsn: AAB1/D364B230, prev AAB1/D364A110, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31878 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D364C368, prev AAB1/D364B230, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31879 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D364D470, prev AAB1/D364C368, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31880 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D364E5A0, prev AAB1/D364D470, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31881 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D364F6B0, prev AAB1/D364E5A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31882 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D36507D8, prev AAB1/D364F6B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31883 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D36518E0, prev AAB1/D36507D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31884 FPW rmgr: XLOG len (rec/tot): 51/ 4370, tx: 1202295045, lsn: AAB1/D3652A08, prev AAB1/D36518E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31885 FPW rmgr: XLOG len (rec/tot): 51/ 4386, tx: 1202295045, lsn: AAB1/D36558B8, prev AAB1/D3655878, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31886 FPW rmgr: XLOG len (rec/tot): 51/ 4393, tx: 1202295045, lsn: AAB1/D365C2A8, prev AAB1/D365C268, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31887 FPW rmgr: XLOG len (rec/tot): 51/ 4393, tx: 1202295045, lsn: AAB1/D3660D40, prev AAB1/D3660D00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31888 FPW rmgr: XLOG len (rec/tot): 51/ 4405, tx: 1202295045, lsn: AAB1/D3661E70, prev AAB1/D3660D40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31889 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D3662FC0, prev AAB1/D3661E70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31890 FPW rmgr: XLOG len (rec/tot): 51/ 4390, tx: 1202295045, lsn: AAB1/D36644C8, prev AAB1/D3664498, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31891 FPW rmgr: XLOG len (rec/tot): 51/ 4401, tx: 1202295045, lsn: AAB1/D36655F0, prev AAB1/D36644C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31892 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3666740, prev AAB1/D36655F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31893 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D366C418, prev AAB1/D366A438, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31894 FPW rmgr: XLOG len (rec/tot): 51/ 4393, tx: 1202295045, lsn: AAB1/D366D530, prev AAB1/D366C418, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31895 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D366E678, prev AAB1/D366D530, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31896 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D366F780, prev AAB1/D366E678, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31897 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D3670898, prev AAB1/D366F780, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31898 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3671A08, prev AAB1/D36719D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31899 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D3673678, prev AAB1/D3672B30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31900 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D3677038, prev AAB1/D3676FF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31901 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D3679968, prev AAB1/D3679928, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31902 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D367C7C0, prev AAB1/D367AAA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31903 FPW rmgr: XLOG len (rec/tot): 51/ 4337, tx: 1202295045, lsn: AAB1/D367F900, prev AAB1/D367D8C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31904 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D3682A98, prev AAB1/D36829C0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31905 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D3688308, prev AAB1/D36882C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31906 FPW rmgr: XLOG len (rec/tot): 51/ 4342, tx: 1202295045, lsn: AAB1/D368EA98, prev AAB1/D368EA58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31907 FPW rmgr: XLOG len (rec/tot): 51/ 4319, tx: 1202295045, lsn: AAB1/D3692A40, prev AAB1/D3692A10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31908 FPW rmgr: XLOG len (rec/tot): 51/ 4336, tx: 1202295045, lsn: AAB1/D3693B20, prev AAB1/D3692A40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31909 FPW rmgr: XLOG len (rec/tot): 51/ 4355, tx: 1202295045, lsn: AAB1/D3694C28, prev AAB1/D3693B20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31910 FPW rmgr: XLOG len (rec/tot): 51/ 4324, tx: 1202295045, lsn: AAB1/D3699750, prev AAB1/D3699710, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31911 FPW rmgr: XLOG len (rec/tot): 51/ 4327, tx: 1202295045, lsn: AAB1/D369A850, prev AAB1/D3699750, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31912 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D369B938, prev AAB1/D369A850, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31913 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D369CA50, prev AAB1/D369B938, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31914 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D369DB50, prev AAB1/D369CA50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31915 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D369EC58, prev AAB1/D369DB50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31916 FPW rmgr: XLOG len (rec/tot): 51/ 4333, tx: 1202295045, lsn: AAB1/D369FD60, prev AAB1/D369EC58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31917 FPW rmgr: XLOG len (rec/tot): 51/ 4346, tx: 1202295045, lsn: AAB1/D36A0E68, prev AAB1/D369FD60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31918 FPW rmgr: XLOG len (rec/tot): 51/ 4349, tx: 1202295045, lsn: AAB1/D36A1F68, prev AAB1/D36A0E68, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31919 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D36A3080, prev AAB1/D36A1F68, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31920 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D36A41B8, prev AAB1/D36A3080, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31921 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D36A52D0, prev AAB1/D36A41B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31922 FPW rmgr: XLOG len (rec/tot): 51/ 3494, tx: 1202295045, lsn: AAB1/D36A63F0, prev AAB1/D36A52D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31640 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D36A7278, prev AAB1/D36A7248, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31923 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D36ADD60, prev AAB1/D36ADD20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31924 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D36B4A48, prev AAB1/D36B4A08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31926 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D36B7BD0, prev AAB1/D36B7B90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31927 FPW rmgr: XLOG len (rec/tot): 51/ 4398, tx: 1202295045, lsn: AAB1/D36B8D08, prev AAB1/D36B7BD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31928 FPW rmgr: XLOG len (rec/tot): 51/ 4395, tx: 1202295045, lsn: AAB1/D36B9E38, prev AAB1/D36B8D08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31929 FPW rmgr: XLOG len (rec/tot): 51/ 4361, tx: 1202295045, lsn: AAB1/D36BAFF0, prev AAB1/D36BAF80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31930 FPW rmgr: XLOG len (rec/tot): 51/ 4383, tx: 1202295045, lsn: AAB1/D36BD1A0, prev AAB1/D36BD170, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31931 FPW rmgr: XLOG len (rec/tot): 51/ 4392, tx: 1202295045, lsn: AAB1/D36BEE80, prev AAB1/D36BEE50, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31932 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D36BFFA8, prev AAB1/D36BEE80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31933 FPW rmgr: XLOG len (rec/tot): 51/ 4376, tx: 1202295045, lsn: AAB1/D36C1CF8, prev AAB1/D36C1C78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31934 FPW rmgr: XLOG len (rec/tot): 51/ 4409, tx: 1202295045, lsn: AAB1/D36C3A40, prev AAB1/D36C3A10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31935 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D36C4B98, prev AAB1/D36C3A40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31936 FPW rmgr: XLOG len (rec/tot): 51/ 4385, tx: 1202295045, lsn: AAB1/D36C5CC0, prev AAB1/D36C4B98, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31937 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D36C6F90, prev AAB1/D36C6F18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31938 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D36C80F8, prev AAB1/D36C80C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31939 FPW rmgr: XLOG len (rec/tot): 51/ 4397, tx: 1202295045, lsn: AAB1/D36C9210, prev AAB1/D36C80F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31940 FPW rmgr: XLOG len (rec/tot): 51/ 4389, tx: 1202295045, lsn: AAB1/D36CAED8, prev AAB1/D36CA358, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31941 FPW rmgr: XLOG len (rec/tot): 51/ 4410, tx: 1202295045, lsn: AAB1/D36CC018, prev AAB1/D36CAED8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31942 FPW rmgr: XLOG len (rec/tot): 51/ 4385, tx: 1202295045, lsn: AAB1/D36D6A08, prev AAB1/D36D5FD8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31943 FPW rmgr: XLOG len (rec/tot): 51/ 4411, tx: 1202295045, lsn: AAB1/D36DC7D0, prev AAB1/D36DBA90, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31944 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D36E17E0, prev AAB1/D36E17A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31945 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D36E3498, prev AAB1/D36E2918, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31946 FPW rmgr: XLOG len (rec/tot): 51/ 4405, tx: 1202295045, lsn: AAB1/D36E45C8, prev AAB1/D36E3498, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31947 FPW rmgr: XLOG len (rec/tot): 51/ 4391, tx: 1202295045, lsn: AAB1/D36E5700, prev AAB1/D36E45C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31948 FPW rmgr: XLOG len (rec/tot): 51/ 4413, tx: 1202295045, lsn: AAB1/D36E7358, prev AAB1/D36E6840, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31949 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D36E84B0, prev AAB1/D36E7358, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31950 FPW rmgr: XLOG len (rec/tot): 51/ 4402, tx: 1202295045, lsn: AAB1/D36E95D0, prev AAB1/D36E84B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31951 FPW rmgr: XLOG len (rec/tot): 51/ 4395, tx: 1202295045, lsn: AAB1/D36EA720, prev AAB1/D36E95D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31952 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D36EB850, prev AAB1/D36EA720, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31953 FPW rmgr: XLOG len (rec/tot): 51/ 4388, tx: 1202295045, lsn: AAB1/D36EC988, prev AAB1/D36EB850, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31954 FPW rmgr: XLOG len (rec/tot): 51/ 4393, tx: 1202295045, lsn: AAB1/D36EDAB0, prev AAB1/D36EC988, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31955 FPW rmgr: XLOG len (rec/tot): 51/ 4422, tx: 1202295045, lsn: AAB1/D36EEBF8, prev AAB1/D36EDAB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31956 FPW rmgr: XLOG len (rec/tot): 51/ 4391, tx: 1202295045, lsn: AAB1/D36EFD40, prev AAB1/D36EEBF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31957 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D36F0E80, prev AAB1/D36EFD40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31958 FPW rmgr: XLOG len (rec/tot): 51/ 4395, tx: 1202295045, lsn: AAB1/D36F1FA0, prev AAB1/D36F0E80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31959 FPW rmgr: XLOG len (rec/tot): 51/ 4403, tx: 1202295045, lsn: AAB1/D36F30E8, prev AAB1/D36F1FA0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31960 FPW rmgr: XLOG len (rec/tot): 51/ 4407, tx: 1202295045, lsn: AAB1/D36F4238, prev AAB1/D36F30E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31961 FPW rmgr: XLOG len (rec/tot): 51/ 4389, tx: 1202295045, lsn: AAB1/D36F8EB0, prev AAB1/D36F8E70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31962 FPW rmgr: XLOG len (rec/tot): 51/ 4408, tx: 1202295045, lsn: AAB1/D36FBE18, prev AAB1/D36FBDD8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31963 FPW rmgr: XLOG len (rec/tot): 51/ 4389, tx: 1202295045, lsn: AAB1/D3702A60, prev AAB1/D3702A20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31964 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D3703B88, prev AAB1/D3702A60, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31965 FPW rmgr: XLOG len (rec/tot): 51/ 4390, tx: 1202295045, lsn: AAB1/D3704CC0, prev AAB1/D3703B88, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31966 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D3705DE8, prev AAB1/D3704CC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31967 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3706F20, prev AAB1/D3705DE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31968 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3708058, prev AAB1/D3706F20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31969 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D3709178, prev AAB1/D3708058, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31970 FPW rmgr: XLOG len (rec/tot): 51/ 4398, tx: 1202295045, lsn: AAB1/D370A2B0, prev AAB1/D3709178, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31971 FPW rmgr: XLOG len (rec/tot): 51/ 4386, tx: 1202295045, lsn: AAB1/D370B3E0, prev AAB1/D370A2B0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31972 FPW rmgr: XLOG len (rec/tot): 51/ 4380, tx: 1202295045, lsn: AAB1/D370C520, prev AAB1/D370B3E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31973 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D370D640, prev AAB1/D370C520, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31974 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D370E768, prev AAB1/D370D640, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31975 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D370F970, prev AAB1/D370F940, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31976 FPW rmgr: XLOG len (rec/tot): 51/ 4374, tx: 1202295045, lsn: AAB1/D3710AA8, prev AAB1/D370F970, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31977 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D3711BC0, prev AAB1/D3710AA8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31978 FPW rmgr: XLOG len (rec/tot): 51/ 4408, tx: 1202295045, lsn: AAB1/D3712CF8, prev AAB1/D3711BC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31979 FPW rmgr: XLOG len (rec/tot): 51/ 4395, tx: 1202295045, lsn: AAB1/D3713E30, prev AAB1/D3712CF8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31980 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D3714F78, prev AAB1/D3713E30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31981 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D3719B68, prev AAB1/D3719B28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31982 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D371EB28, prev AAB1/D371EAE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31983 FPW rmgr: XLOG len (rec/tot): 51/ 4368, tx: 1202295045, lsn: AAB1/D3723A58, prev AAB1/D3723A18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31984 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D3724B80, prev AAB1/D3723A58, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31985 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3725C98, prev AAB1/D3724B80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31986 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D37278D8, prev AAB1/D3726DD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31987 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D3728A00, prev AAB1/D37278D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31988 FPW rmgr: XLOG len (rec/tot): 51/ 4329, tx: 1202295045, lsn: AAB1/D372A608, prev AAB1/D3729B08, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31989 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D372B6F8, prev AAB1/D372A608, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31990 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D372E4C8, prev AAB1/D372C810, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31991 FPW rmgr: XLOG len (rec/tot): 51/ 4354, tx: 1202295045, lsn: AAB1/D3730188, prev AAB1/D372F5E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31992 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3731290, prev AAB1/D3730188, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31993 FPW rmgr: XLOG len (rec/tot): 51/ 4335, tx: 1202295045, lsn: AAB1/D37323B8, prev AAB1/D3731290, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31994 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D37334A8, prev AAB1/D37323B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31995 FPW rmgr: XLOG len (rec/tot): 51/ 4364, tx: 1202295045, lsn: AAB1/D37345D0, prev AAB1/D37334A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31996 FPW rmgr: XLOG len (rec/tot): 51/ 4325, tx: 1202295045, lsn: AAB1/D37356E0, prev AAB1/D37345D0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31997 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D37367E0, prev AAB1/D37356E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31998 FPW rmgr: XLOG len (rec/tot): 51/ 4322, tx: 1202295045, lsn: AAB1/D3737A58, prev AAB1/D37379E0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31999 FPW rmgr: XLOG len (rec/tot): 51/ 4366, tx: 1202295045, lsn: AAB1/D373A1C0, prev AAB1/D373A188, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32000 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D373B428, prev AAB1/D373B3F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32001 FPW rmgr: XLOG len (rec/tot): 51/ 4371, tx: 1202295045, lsn: AAB1/D373C808, prev AAB1/D373C790, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32002 FPW rmgr: XLOG len (rec/tot): 51/ 4350, tx: 1202295045, lsn: AAB1/D3741460, prev AAB1/D3741420, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32003 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D3745DB0, prev AAB1/D3745D70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32004 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D3748870, prev AAB1/D3748830, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32005 FPW rmgr: XLOG len (rec/tot): 51/ 4345, tx: 1202295045, lsn: AAB1/D374B678, prev AAB1/D374B638, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32006 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D374E7C8, prev AAB1/D374C790, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32007 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D3751728, prev AAB1/D374F8C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32008 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D3754808, prev AAB1/D3752848, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32009 FPW rmgr: XLOG len (rec/tot): 51/ 4351, tx: 1202295045, lsn: AAB1/D3755918, prev AAB1/D3754808, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32010 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D3756A30, prev AAB1/D3755918, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32011 FPW rmgr: XLOG len (rec/tot): 51/ 4365, tx: 1202295045, lsn: AAB1/D3757B38, prev AAB1/D3756A30, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32012 FPW rmgr: XLOG len (rec/tot): 51/ 4367, tx: 1202295045, lsn: AAB1/D3758C60, prev AAB1/D3757B38, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32013 FPW rmgr: XLOG len (rec/tot): 51/ 4379, tx: 1202295045, lsn: AAB1/D375A980, prev AAB1/D3759D70, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32014 FPW rmgr: XLOG len (rec/tot): 51/ 4393, tx: 1202295045, lsn: AAB1/D375C638, prev AAB1/D375C5F8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32015 FPW rmgr: XLOG len (rec/tot): 51/ 4404, tx: 1202295045, lsn: AAB1/D375E2E8, prev AAB1/D375D768, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32016 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D375F420, prev AAB1/D375E2E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32017 FPW rmgr: XLOG len (rec/tot): 51/ 4394, tx: 1202295045, lsn: AAB1/D3760550, prev AAB1/D375F420, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32018 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D3761730, prev AAB1/D37616B8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32019 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D3763288, prev AAB1/D3763218, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32020 FPW rmgr: XLOG len (rec/tot): 51/ 4416, tx: 1202295045, lsn: AAB1/D37688C0, prev AAB1/D3768880, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32021 FPW rmgr: XLOG len (rec/tot): 51/ 4414, tx: 1202295045, lsn: AAB1/D376F800, prev AAB1/D376D898, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32022 FPW rmgr: XLOG len (rec/tot): 51/ 4396, tx: 1202295045, lsn: AAB1/D37728E8, prev AAB1/D37728A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32023 FPW rmgr: XLOG len (rec/tot): 51/ 4418, tx: 1202295045, lsn: AAB1/D3773A18, prev AAB1/D37728E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32024 FPW rmgr: XLOG len (rec/tot): 51/ 4421, tx: 1202295045, lsn: AAB1/D3774B78, prev AAB1/D3773A18, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32025 FPW rmgr: XLOG len (rec/tot): 51/ 4407, tx: 1202295045, lsn: AAB1/D3775CC0, prev AAB1/D3774B78, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32026 FPW rmgr: XLOG len (rec/tot): 51/ 4381, tx: 1202295045, lsn: AAB1/D3776E10, prev AAB1/D3775CC0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32027 FPW rmgr: XLOG len (rec/tot): 51/ 4384, tx: 1202295045, lsn: AAB1/D3777F30, prev AAB1/D3776E10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32028 FPW rmgr: XLOG len (rec/tot): 51/ 4400, tx: 1202295045, lsn: AAB1/D377B0A0, prev AAB1/D3779068, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32029 FPW rmgr: XLOG len (rec/tot): 51/ 4406, tx: 1202295045, lsn: AAB1/D377C1E8, prev AAB1/D377B0A0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32030 FPW rmgr: XLOG len (rec/tot): 51/ 4402, tx: 1202295045, lsn: AAB1/D377D320, prev AAB1/D377C1E8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32031 FPW rmgr: XLOG len (rec/tot): 51/ 4374, tx: 1202295045, lsn: AAB1/D3782338, prev AAB1/D3780428, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32032 FPW rmgr: XLOG len (rec/tot): 51/ 4410, tx: 1202295045, lsn: AAB1/D3783450, prev AAB1/D3782338, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32033 FPW rmgr: XLOG len (rec/tot): 51/ 4420, tx: 1202295045, lsn: AAB1/D37845A8, prev AAB1/D3783450, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32034 FPW rmgr: XLOG len (rec/tot): 51/ 4390, tx: 1202295045, lsn: AAB1/D37856F0, prev AAB1/D37845A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32035 FPW rmgr: XLOG len (rec/tot): 51/ 4406, tx: 1202295045, lsn: AAB1/D3787478, prev AAB1/D3786830, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32036 FPW rmgr: XLOG len (rec/tot): 51/ 4387, tx: 1202295045, lsn: AAB1/D37885C8, prev AAB1/D3787478, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32037 FPW rmgr: XLOG len (rec/tot): 51/ 4422, tx: 1202295045, lsn: AAB1/D37896F0, prev AAB1/D37885C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32038 FPW rmgr: XLOG len (rec/tot): 51/ 4382, tx: 1202295045, lsn: AAB1/D378B368, prev AAB1/D378B330, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32039 FPW rmgr: XLOG len (rec/tot): 51/ 4393, tx: 1202295045, lsn: AAB1/D378E4D8, prev AAB1/D378E498, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32040 FPW rmgr: XLOG len (rec/tot): 51/ 4391, tx: 1202295045, lsn: AAB1/D3795868, prev AAB1/D3795828, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32041 FPW rmgr: XLOG len (rec/tot): 51/ 4377, tx: 1202295045, lsn: AAB1/D379C970, prev AAB1/D379C930, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32042 FPW rmgr: XLOG len (rec/tot): 51/ 4411, tx: 1202295045, lsn: AAB1/D379FFD8, prev AAB1/D379F438, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32043 FPW rmgr: XLOG len (rec/tot): 51/ 4373, tx: 1202295045, lsn: AAB1/D37A2EF0, prev AAB1/D37A1130, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32044 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D37A5C60, prev AAB1/D37A5C28, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32045 FPW rmgr: XLOG len (rec/tot): 51/ 4362, tx: 1202295045, lsn: AAB1/D37A7960, prev AAB1/D37A6D80, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32046 FPW rmgr: XLOG len (rec/tot): 51/ 4409, tx: 1202295045, lsn: AAB1/D37A9CE8, prev AAB1/D37A9CB0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32047 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D37AAE40, prev AAB1/D37A9CE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32048 FPW rmgr: XLOG len (rec/tot): 51/ 4357, tx: 1202295045, lsn: AAB1/D37B02D0, prev AAB1/D37B0298, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32049 FPW rmgr: XLOG len (rec/tot): 51/ 4359, tx: 1202295045, lsn: AAB1/D37B1410, prev AAB1/D37B13D8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32050 FPW rmgr: XLOG len (rec/tot): 51/ 4369, tx: 1202295045, lsn: AAB1/D37B6C58, prev AAB1/D37B6C20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32051 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D37BB860, prev AAB1/D37B9CD0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32052 FPW rmgr: XLOG len (rec/tot): 51/ 4358, tx: 1202295045, lsn: AAB1/D37C11D0, prev AAB1/D37C1198, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32053 FPW rmgr: XLOG len (rec/tot): 51/ 4360, tx: 1202295045, lsn: AAB1/D37C4C50, prev AAB1/D37C4C10, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32054 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D37CA128, prev AAB1/D37CA0F0, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32055 FPW rmgr: XLOG len (rec/tot): 51/ 4372, tx: 1202295045, lsn: AAB1/D37CF5A8, prev AAB1/D37CF570, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32056 FPW rmgr: XLOG len (rec/tot): 51/ 4356, tx: 1202295045, lsn: AAB1/D37D2A40, prev AAB1/D37D2A00, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32057 FPW rmgr: XLOG len (rec/tot): 51/ 4353, tx: 1202295045, lsn: AAB1/D37D5A78, prev AAB1/D37D5A40, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32058 FPW rmgr: XLOG len (rec/tot): 51/ 4363, tx: 1202295045, lsn: AAB1/D37DAA58, prev AAB1/D37DAA20, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32059 FPW rmgr: XLOG len (rec/tot): 51/ 4352, tx: 1202295045, lsn: AAB1/D37DFB28, prev AAB1/D37DFAE8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32060 FPW rmgr: XLOG len (rec/tot): 51/ 2499, tx: 1202295045, lsn: AAB1/D38354A8, prev AAB1/D3835468, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 32061 FPW rmgr: XLOG len (rec/tot): 51/ 1773, tx: 1202295045, lsn: AAB1/D3835E70, prev AAB1/D38354A8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 31925 FPW rmgr: XLOG len (rec/tot): 51/ 1729, tx: 1202295045, lsn: AAB1/D3837208, prev AAB1/D38371C8, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 290 FPW rmgr: XLOG len (rec/tot): 51/ 96, tx: 1202295045, lsn: AAB1/D38378D0, prev AAB1/D3837208, desc: FPI , blkref #0: rel 1663/16387/3569625749 blk 0 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3912E80, prev AAB1/D3912320, desc: NEW_CID rel 1663/16387/1259; tid 6/25; cmin: 4294967295, cmax: 0, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3912EC0, prev AAB1/D3912E80, desc: NEW_CID rel 1663/16387/1259; tid 6/24; cmin: 0, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 67/ 1452, tx: 1202298790, lsn: AAB1/D3912F00, prev AAB1/D3912EC0, desc: HOT_UPDATE off 25 xmax 1202298790 flags 0x01 ; new off 24 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39134B0, prev AAB1/D3912F00, desc: NEW_CID rel 1663/16387/1259; tid 6/27; cmin: 4294967295, cmax: 1, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39134F0, prev AAB1/D39134B0, desc: NEW_CID rel 1663/16387/1259; tid 6/36; cmin: 1, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3913530, prev AAB1/D39134F0, desc: HOT_UPDATE off 27 xmax 1202298790 flags 0x20 ; new off 36 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913580, prev AAB1/D3913530, desc: NEW_CID rel 1663/16387/1259; tid 6/28; cmin: 4294967295, cmax: 2, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39135C0, prev AAB1/D3913580, desc: NEW_CID rel 1663/16387/1259; tid 6/37; cmin: 2, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3913600, prev AAB1/D39135C0, desc: HOT_UPDATE off 28 xmax 1202298790 flags 0x20 ; new off 37 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913650, prev AAB1/D3913600, desc: NEW_CID rel 1663/16387/1259; tid 6/29; cmin: 4294967295, cmax: 3, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913690, prev AAB1/D3913650, desc: NEW_CID rel 1663/16387/1259; tid 6/38; cmin: 3, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D39136D0, prev AAB1/D3913690, desc: HOT_UPDATE off 29 xmax 1202298790 flags 0x20 ; new off 38 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913720, prev AAB1/D39136D0, desc: NEW_CID rel 1663/16387/1259; tid 6/30; cmin: 4294967295, cmax: 4, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913760, prev AAB1/D3913720, desc: NEW_CID rel 1663/16387/1259; tid 6/39; cmin: 4, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D39137A0, prev AAB1/D3913760, desc: HOT_UPDATE off 30 xmax 1202298790 flags 0x20 ; new off 39 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39137F0, prev AAB1/D39137A0, desc: NEW_CID rel 1663/16387/1259; tid 6/31; cmin: 4294967295, cmax: 5, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913830, prev AAB1/D39137F0, desc: NEW_CID rel 1663/16387/1259; tid 6/40; cmin: 5, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3913870, prev AAB1/D3913830, desc: HOT_UPDATE off 31 xmax 1202298790 flags 0x20 ; new off 40 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39138C0, prev AAB1/D3913870, desc: NEW_CID rel 1663/16387/1259; tid 6/32; cmin: 4294967295, cmax: 6, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913900, prev AAB1/D39138C0, desc: NEW_CID rel 1663/16387/1259; tid 6/41; cmin: 6, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3913940, prev AAB1/D3913900, desc: HOT_UPDATE off 32 xmax 1202298790 flags 0x20 ; new off 41 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913990, prev AAB1/D3913940, desc: NEW_CID rel 1663/16387/1259; tid 6/33; cmin: 4294967295, cmax: 7, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39139D0, prev AAB1/D3913990, desc: NEW_CID rel 1663/16387/1259; tid 6/42; cmin: 7, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3913A10, prev AAB1/D39139D0, desc: HOT_UPDATE off 33 xmax 1202298790 flags 0x20 ; new off 42 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913A60, prev AAB1/D3913A10, desc: NEW_CID rel 1663/16387/1259; tid 6/34; cmin: 4294967295, cmax: 8, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913AA0, prev AAB1/D3913A60, desc: NEW_CID rel 1663/16387/1259; tid 6/43; cmin: 8, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3913AE0, prev AAB1/D3913AA0, desc: HOT_UPDATE off 34 xmax 1202298790 flags 0x20 ; new off 43 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913B30, prev AAB1/D3913AE0, desc: NEW_CID rel 1663/16387/1259; tid 6/35; cmin: 4294967295, cmax: 9, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913B70, prev AAB1/D3913B30, desc: NEW_CID rel 1663/16387/1259; tid 6/44; cmin: 9, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3913BB0, prev AAB1/D3913B70, desc: HOT_UPDATE off 35 xmax 1202298790 flags 0x20 ; new off 44 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913C00, prev AAB1/D3913BB0, desc: NEW_CID rel 1663/16387/1259; tid 13/7; cmin: 4294967295, cmax: 10, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3913C40, prev AAB1/D3913C00, desc: NEW_CID rel 1663/16387/1259; tid 13/2; cmin: 10, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 67/ 290, tx: 1202298790, lsn: AAB1/D3913C80, prev AAB1/D3913C40, desc: HOT_UPDATE off 7 xmax 1202298790 flags 0x01 ; new off 2 xmax 0, blkref #0: rel 1663/16387/1259 blk 13 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3915D90, prev AAB1/D3915D50, desc: NEW_CID rel 1663/16387/2615; tid 0/16; cmin: 4294967295, cmax: 11, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3915DD0, prev AAB1/D3915D90, desc: NEW_CID rel 1663/16387/2615; tid 0/19; cmin: 11, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 67/ 647, tx: 1202298790, lsn: AAB1/D3917B20, prev AAB1/D3917AE0, desc: HOT_UPDATE off 16 xmax 1202298790 flags 0x00 ; new off 19 xmax 0, blkref #0: rel 1663/16387/2615 blk 0 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3925190, prev AAB1/D3925150, desc: NEW_CID rel 1663/16387/1259; tid 14/19; cmin: 4294967295, cmax: 12, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39251D0, prev AAB1/D3925190, desc: NEW_CID rel 1663/16387/1259; tid 14/4; cmin: 12, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 67/ 400, tx: 1202298790, lsn: AAB1/D3925210, prev AAB1/D39251D0, desc: HOT_UPDATE off 19 xmax 1202298790 flags 0x01 ; new off 4 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39253A0, prev AAB1/D3925210, desc: NEW_CID rel 1663/16387/1259; tid 14/20; cmin: 4294967295, cmax: 13, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39253E0, prev AAB1/D39253A0, desc: NEW_CID rel 1663/16387/1259; tid 14/5; cmin: 13, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3925420, prev AAB1/D39253E0, desc: HOT_UPDATE off 20 xmax 1202298790 flags 0x20 ; new off 5 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3925470, prev AAB1/D3925420, desc: NEW_CID rel 1663/16387/1259; tid 14/24; cmin: 4294967295, cmax: 14, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39254B0, prev AAB1/D3925470, desc: NEW_CID rel 1663/16387/1259; tid 14/6; cmin: 14, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D39254F0, prev AAB1/D39254B0, desc: HOT_UPDATE off 24 xmax 1202298790 flags 0x20 ; new off 6 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3925540, prev AAB1/D39254F0, desc: NEW_CID rel 1663/16387/2615; tid 0/17; cmin: 4294967295, cmax: 15, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3925580, prev AAB1/D3925540, desc: NEW_CID rel 1663/16387/2615; tid 0/20; cmin: 15, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 68/ 68, tx: 1202298790, lsn: AAB1/D39255C0, prev AAB1/D3925580, desc: HOT_UPDATE off 17 xmax 1202298790 flags 0x20 ; new off 20 xmax 0, blkref #0: rel 1663/16387/2615 blk 0 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3925608, prev AAB1/D39255C0, desc: NEW_CID rel 1663/16387/1259; tid 21/13; cmin: 4294967295, cmax: 16, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3925648, prev AAB1/D3925608, desc: NEW_CID rel 1663/16387/1259; tid 21/3; cmin: 16, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 67/ 314, tx: 1202298790, lsn: AAB1/D3925688, prev AAB1/D3925648, desc: HOT_UPDATE off 13 xmax 1202298790 flags 0x01 ; new off 3 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39257C8, prev AAB1/D3925688, desc: NEW_CID rel 1663/16387/1259; tid 21/14; cmin: 4294967295, cmax: 17, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3925808, prev AAB1/D39257C8, desc: NEW_CID rel 1663/16387/1259; tid 21/4; cmin: 17, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3925848, prev AAB1/D3925808, desc: HOT_UPDATE off 14 xmax 1202298790 flags 0x20 ; new off 4 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39264A0, prev AAB1/D3925898, desc: NEW_CID rel 1663/16387/1259; tid 22/7; cmin: 4294967295, cmax: 18, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39264E0, prev AAB1/D39264A0, desc: NEW_CID rel 1663/16387/1259; tid 22/2; cmin: 18, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 67/ 257, tx: 1202298790, lsn: AAB1/D3926520, prev AAB1/D39264E0, desc: HOT_UPDATE off 7 xmax 1202298790 flags 0x01 ; new off 2 xmax 0, blkref #0: rel 1663/16387/1259 blk 22 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3926628, prev AAB1/D3926520, desc: NEW_CID rel 1663/16387/1259; tid 17/7; cmin: 4294967295, cmax: 19, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3926668, prev AAB1/D3926628, desc: NEW_CID rel 1663/16387/1259; tid 17/3; cmin: 19, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 67/ 322, tx: 1202298790, lsn: AAB1/D39266A8, prev AAB1/D3926668, desc: HOT_UPDATE off 7 xmax 1202298790 flags 0x01 ; new off 3 xmax 0, blkref #0: rel 1663/16387/1259 blk 17 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39267F0, prev AAB1/D39266A8, desc: NEW_CID rel 1663/16387/1259; tid 17/8; cmin: 4294967295, cmax: 20, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3926830, prev AAB1/D39267F0, desc: NEW_CID rel 1663/16387/1259; tid 17/4; cmin: 20, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298790, lsn: AAB1/D3926870, prev AAB1/D3926830, desc: HOT_UPDATE off 8 xmax 1202298790 flags 0x20 ; new off 4 xmax 0, blkref #0: rel 1663/16387/1259 blk 17 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D39268C0, prev AAB1/D3926870, desc: NEW_CID rel 1663/16387/2615; tid 0/18; cmin: 4294967295, cmax: 21, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298790, lsn: AAB1/D3926900, prev AAB1/D39268C0, desc: NEW_CID rel 1663/16387/2615; tid 0/21; cmin: 21, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 68/ 68, tx: 1202298790, lsn: AAB1/D3926940, prev AAB1/D3926900, desc: HOT_UPDATE off 18 xmax 1202298790 flags 0x20 ; new off 21 xmax 0, blkref #0: rel 1663/16387/2615 blk 0 rmgr: Transaction len (rec/tot): 1061/ 1061, tx: 1202298790, lsn: AAB1/D3927580, prev AAB1/D3926988, desc: COMMIT 2023-10-04 22:41:23.863979 UTC; inval msgs: catcache 36 catcache 35 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 36 catcache 35 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 36 catcache 35 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 relcache 132091617 relcache 132091644 relcache 132091635 relcache 132091646 relcache 132091619 relcache 3498102916 relcache 16407 relcache 16400 relcache 3484880351 relcache 3561211565 relcache 3552097563 relcache 3562785676 relcache 3553852461 relcache 3546526549 relcache 3481184220 relcache 3550681910 relcache 3557956661 relcache 3561879248 relcache 3566558198 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C1B0, prev AAB1/D393C170, desc: NEW_CID rel 1663/16387/1259; tid 6/24; cmin: 4294967295, cmax: 0, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C1F0, prev AAB1/D393C1B0, desc: NEW_CID rel 1663/16387/1259; tid 6/45; cmin: 0, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D393C230, prev AAB1/D393C1F0, desc: HOT_UPDATE off 24 xmax 1202298791 flags 0x20 ; new off 45 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C280, prev AAB1/D393C230, desc: NEW_CID rel 1663/16387/1259; tid 6/36; cmin: 4294967295, cmax: 1, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C2C0, prev AAB1/D393C280, desc: NEW_CID rel 1663/16387/1259; tid 6/46; cmin: 1, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D393C300, prev AAB1/D393C2C0, desc: HOT_UPDATE off 36 xmax 1202298791 flags 0x20 ; new off 46 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C350, prev AAB1/D393C300, desc: NEW_CID rel 1663/16387/1259; tid 6/37; cmin: 4294967295, cmax: 2, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C390, prev AAB1/D393C350, desc: NEW_CID rel 1663/16387/1259; tid 6/47; cmin: 2, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D393C3D0, prev AAB1/D393C390, desc: HOT_UPDATE off 37 xmax 1202298791 flags 0x20 ; new off 47 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C420, prev AAB1/D393C3D0, desc: NEW_CID rel 1663/16387/1259; tid 6/38; cmin: 4294967295, cmax: 3, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C460, prev AAB1/D393C420, desc: NEW_CID rel 1663/16387/1259; tid 6/48; cmin: 3, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D393C4A0, prev AAB1/D393C460, desc: HOT_UPDATE off 38 xmax 1202298791 flags 0x20 ; new off 48 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C4F0, prev AAB1/D393C4A0, desc: NEW_CID rel 1663/16387/1259; tid 6/39; cmin: 4294967295, cmax: 4, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C530, prev AAB1/D393C4F0, desc: NEW_CID rel 1663/16387/1259; tid 6/49; cmin: 4, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D393C570, prev AAB1/D393C530, desc: HOT_UPDATE off 39 xmax 1202298791 flags 0x20 ; new off 49 xmax 0, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D393C5C0, prev AAB1/D393C570, desc: LOCK off 40: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C5F8, prev AAB1/D393C5C0, desc: NEW_CID rel 1663/16387/1259; tid 6/40; cmin: 4294967295, cmax: 5, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393C638, prev AAB1/D393C5F8, desc: NEW_CID rel 1663/16387/1259; tid 1/4; cmin: 5, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 75/ 1532, tx: 1202298791, lsn: AAB1/D393D218, prev AAB1/D393C678, desc: UPDATE off 40 xmax 1202298791 flags 0x02 ; new off 4 xmax 0, blkref #0: rel 1663/16387/1259 blk 1 FPW, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393D818, prev AAB1/D393D218, desc: INSERT_LEAF off 10, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D393D858, prev AAB1/D393D818, desc: INSERT_LEAF off 18, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393E2E8, prev AAB1/D393D8B8, desc: INSERT_LEAF off 65, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D393E368, prev AAB1/D393E328, desc: LOCK off 41: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393E3A0, prev AAB1/D393E368, desc: NEW_CID rel 1663/16387/1259; tid 6/41; cmin: 4294967295, cmax: 6, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393E3E0, prev AAB1/D393E3A0, desc: NEW_CID rel 1663/16387/1259; tid 1/5; cmin: 6, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D393E420, prev AAB1/D393E3E0, desc: UPDATE off 41 xmax 1202298791 flags 0x00 ; new off 5 xmax 0, blkref #0: rel 1663/16387/1259 blk 1, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393E538, prev AAB1/D393E420, desc: INSERT_LEAF off 23, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D393E578, prev AAB1/D393E538, desc: INSERT_LEAF off 8, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393E5D8, prev AAB1/D393E578, desc: INSERT_LEAF off 78, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D393E618, prev AAB1/D393E5D8, desc: LOCK off 42: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393E650, prev AAB1/D393E618, desc: NEW_CID rel 1663/16387/1259; tid 6/42; cmin: 4294967295, cmax: 7, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393E690, prev AAB1/D393E650, desc: NEW_CID rel 1663/16387/1259; tid 1/6; cmin: 7, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D393E6D0, prev AAB1/D393E690, desc: UPDATE off 42 xmax 1202298791 flags 0x00 ; new off 6 xmax 0, blkref #0: rel 1663/16387/1259 blk 1, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393E7E8, prev AAB1/D393E6D0, desc: INSERT_LEAF off 40, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D393E828, prev AAB1/D393E7E8, desc: INSERT_LEAF off 11, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393E888, prev AAB1/D393E828, desc: INSERT_LEAF off 95, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D393E8C8, prev AAB1/D393E888, desc: LOCK off 43: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393E900, prev AAB1/D393E8C8, desc: NEW_CID rel 1663/16387/1259; tid 6/43; cmin: 4294967295, cmax: 8, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393E940, prev AAB1/D393E900, desc: NEW_CID rel 1663/16387/1259; tid 1/7; cmin: 8, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D393E980, prev AAB1/D393E940, desc: UPDATE off 43 xmax 1202298791 flags 0x00 ; new off 7 xmax 0, blkref #0: rel 1663/16387/1259 blk 1, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393EA98, prev AAB1/D393E980, desc: INSERT_LEAF off 19, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 55/ 809, tx: 1202298791, lsn: AAB1/D393EAD8, prev AAB1/D393EA98, desc: INSERT_LEAF off 22, blkref #0: rel 1663/16387/2663 blk 7 FPW rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393EE08, prev AAB1/D393EAD8, desc: INSERT_LEAF off 74, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D393EE48, prev AAB1/D393EE08, desc: LOCK off 44: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393EE80, prev AAB1/D393EE48, desc: NEW_CID rel 1663/16387/1259; tid 6/44; cmin: 4294967295, cmax: 9, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393EEC0, prev AAB1/D393EE80, desc: NEW_CID rel 1663/16387/1259; tid 1/9; cmin: 9, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D393EF00, prev AAB1/D393EEC0, desc: UPDATE off 44 xmax 1202298791 flags 0x00 ; new off 9 xmax 0, blkref #0: rel 1663/16387/1259 blk 1, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393F018, prev AAB1/D393EF00, desc: INSERT_LEAF off 33, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D393F058, prev AAB1/D393F018, desc: INSERT_LEAF off 29, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D393F0B8, prev AAB1/D393F058, desc: INSERT_LEAF off 88, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393F0F8, prev AAB1/D393F0B8, desc: NEW_CID rel 1663/16387/1259; tid 13/2; cmin: 4294967295, cmax: 10, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D393F138, prev AAB1/D393F0F8, desc: NEW_CID rel 1663/16387/1259; tid 13/3; cmin: 10, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D393F178, prev AAB1/D393F138, desc: HOT_UPDATE off 2 xmax 1202298791 flags 0x20 ; new off 3 xmax 0, blkref #0: rel 1663/16387/1259 blk 13 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3942FB8, prev AAB1/D3941180, desc: NEW_CID rel 1663/16387/2615; tid 0/19; cmin: 4294967295, cmax: 11, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3942FF8, prev AAB1/D3942FB8, desc: NEW_CID rel 1663/16387/2615; tid 0/22; cmin: 11, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 68/ 68, tx: 1202298791, lsn: AAB1/D3943038, prev AAB1/D3942FF8, desc: HOT_UPDATE off 19 xmax 1202298791 flags 0x20 ; new off 22 xmax 0, blkref #0: rel 1663/16387/2615 blk 0 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39461E0, prev AAB1/D39461A0, desc: NEW_CID rel 1663/16387/1259; tid 1/4; cmin: 5, cmax: 12, combo: 0 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3946220, prev AAB1/D39461E0, desc: NEW_CID rel 1663/16387/1259; tid 1/10; cmin: 12, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3946260, prev AAB1/D3946220, desc: HOT_UPDATE off 4 xmax 1202298791 flags 0x20 ; new off 10 xmax 0, blkref #0: rel 1663/16387/1259 blk 1 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39462B0, prev AAB1/D3946260, desc: NEW_CID rel 1663/16387/1259; tid 1/5; cmin: 6, cmax: 13, combo: 1 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39462F0, prev AAB1/D39462B0, desc: NEW_CID rel 1663/16387/1259; tid 1/11; cmin: 13, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3946330, prev AAB1/D39462F0, desc: HOT_UPDATE off 5 xmax 1202298791 flags 0x20 ; new off 11 xmax 0, blkref #0: rel 1663/16387/1259 blk 1 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3946380, prev AAB1/D3946330, desc: NEW_CID rel 1663/16387/1259; tid 1/6; cmin: 7, cmax: 14, combo: 2 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39463C0, prev AAB1/D3946380, desc: NEW_CID rel 1663/16387/1259; tid 1/12; cmin: 14, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3946400, prev AAB1/D39463C0, desc: HOT_UPDATE off 6 xmax 1202298791 flags 0x20 ; new off 12 xmax 0, blkref #0: rel 1663/16387/1259 blk 1 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3946450, prev AAB1/D3946400, desc: NEW_CID rel 1663/16387/1259; tid 1/7; cmin: 8, cmax: 15, combo: 3 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3946490, prev AAB1/D3946450, desc: NEW_CID rel 1663/16387/1259; tid 1/13; cmin: 15, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D39464D0, prev AAB1/D3946490, desc: HOT_UPDATE off 7 xmax 1202298791 flags 0x20 ; new off 13 xmax 0, blkref #0: rel 1663/16387/1259 blk 1 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3946520, prev AAB1/D39464D0, desc: LOCK off 9: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 1 rmgr: XLOG len (rec/tot): 49/ 257, tx: 1202298791, lsn: AAB1/D3947040, prev AAB1/D3947000, desc: FPI_FOR_HINT , blkref #0: rel 1663/16387/1259 fork fsm blk 2 FPW rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3947148, prev AAB1/D3947040, desc: NEW_CID rel 1663/16387/1259; tid 1/9; cmin: 9, cmax: 16, combo: 4 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3947188, prev AAB1/D3947148, desc: NEW_CID rel 1663/16387/1259; tid 5/26; cmin: 16, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 75/ 1455, tx: 1202298791, lsn: AAB1/D394A658, prev AAB1/D394A618, desc: UPDATE off 9 xmax 1202298791 flags 0x02 ; new off 26 xmax 0, blkref #0: rel 1663/16387/1259 blk 5 FPW, blkref #1: rel 1663/16387/1259 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394AC08, prev AAB1/D394A658, desc: INSERT_LEAF off 34, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D394AC48, prev AAB1/D394AC08, desc: INSERT_LEAF off 30, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394ACA8, prev AAB1/D394AC48, desc: INSERT_LEAF off 89, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D394ACE8, prev AAB1/D394ACA8, desc: LOCK off 45: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394AD20, prev AAB1/D394ACE8, desc: NEW_CID rel 1663/16387/1259; tid 6/45; cmin: 0, cmax: 17, combo: 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394AD60, prev AAB1/D394AD20, desc: NEW_CID rel 1663/16387/1259; tid 5/28; cmin: 17, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D394ADA0, prev AAB1/D394AD60, desc: UPDATE off 45 xmax 1202298791 flags 0x00 ; new off 28 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394AEB8, prev AAB1/D394ADA0, desc: INSERT_LEAF off 48, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D394AEF8, prev AAB1/D394AEB8, desc: INSERT_LEAF off 25, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394AF58, prev AAB1/D394AEF8, desc: INSERT_LEAF off 103, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D394AF98, prev AAB1/D394AF58, desc: LOCK off 46: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394AFD0, prev AAB1/D394AF98, desc: NEW_CID rel 1663/16387/1259; tid 6/46; cmin: 1, cmax: 18, combo: 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394B010, prev AAB1/D394AFD0, desc: NEW_CID rel 1663/16387/1259; tid 5/29; cmin: 18, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D394B050, prev AAB1/D394B010, desc: UPDATE off 46 xmax 1202298791 flags 0x00 ; new off 29 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394B168, prev AAB1/D394B050, desc: INSERT_LEAF off 39, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 88/ 88, tx: 1202298791, lsn: AAB1/D394B1A8, prev AAB1/D394B168, desc: INSERT_LEAF off 25, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394B200, prev AAB1/D394B1A8, desc: INSERT_LEAF off 94, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D394B240, prev AAB1/D394B200, desc: LOCK off 47: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394B278, prev AAB1/D394B240, desc: NEW_CID rel 1663/16387/1259; tid 6/47; cmin: 2, cmax: 19, combo: 7 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394B2B8, prev AAB1/D394B278, desc: NEW_CID rel 1663/16387/1259; tid 5/30; cmin: 19, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D394B2F8, prev AAB1/D394B2B8, desc: UPDATE off 47 xmax 1202298791 flags 0x00 ; new off 30 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394B410, prev AAB1/D394B2F8, desc: INSERT_LEAF off 29, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D394B450, prev AAB1/D394B410, desc: INSERT_LEAF off 23, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394B4B0, prev AAB1/D394B450, desc: INSERT_LEAF off 84, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D394B4F0, prev AAB1/D394B4B0, desc: LOCK off 48: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394B528, prev AAB1/D394B4F0, desc: NEW_CID rel 1663/16387/1259; tid 6/48; cmin: 3, cmax: 20, combo: 8 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394B568, prev AAB1/D394B528, desc: NEW_CID rel 1663/16387/1259; tid 5/31; cmin: 20, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D394B5A8, prev AAB1/D394B568, desc: UPDATE off 48 xmax 1202298791 flags 0x00 ; new off 31 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394B6C0, prev AAB1/D394B5A8, desc: INSERT_LEAF off 15, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D394B700, prev AAB1/D394B6C0, desc: INSERT_LEAF off 28, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394B760, prev AAB1/D394B700, desc: INSERT_LEAF off 70, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D394C468, prev AAB1/D394B7A0, desc: LOCK off 49: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394C4A0, prev AAB1/D394C468, desc: NEW_CID rel 1663/16387/1259; tid 6/49; cmin: 4, cmax: 21, combo: 9 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394C4E0, prev AAB1/D394C4A0, desc: NEW_CID rel 1663/16387/1259; tid 5/32; cmin: 21, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D394C520, prev AAB1/D394C4E0, desc: UPDATE off 49 xmax 1202298791 flags 0x00 ; new off 32 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 6 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394C638, prev AAB1/D394C520, desc: INSERT_LEAF off 1, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D394C6B8, prev AAB1/D394C678, desc: INSERT_LEAF off 16, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D394C718, prev AAB1/D394C6B8, desc: INSERT_LEAF off 57, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394C758, prev AAB1/D394C718, desc: NEW_CID rel 1663/16387/1259; tid 13/3; cmin: 10, cmax: 22, combo: 10 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D394C798, prev AAB1/D394C758, desc: NEW_CID rel 1663/16387/1259; tid 13/4; cmin: 22, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D394C7D8, prev AAB1/D394C798, desc: HOT_UPDATE off 3 xmax 1202298791 flags 0x20 ; new off 4 xmax 0, blkref #0: rel 1663/16387/1259 blk 13 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3954968, prev AAB1/D3954928, desc: LOCK off 10: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 1 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39549A0, prev AAB1/D3954968, desc: NEW_CID rel 1663/16387/1259; tid 1/10; cmin: 12, cmax: 23, combo: 11 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39549E0, prev AAB1/D39549A0, desc: NEW_CID rel 1663/16387/1259; tid 5/33; cmin: 23, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3954A20, prev AAB1/D39549E0, desc: UPDATE off 10 xmax 1202298791 flags 0x00 ; new off 33 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3954B38, prev AAB1/D3954A20, desc: INSERT_LEAF off 12, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3954B78, prev AAB1/D3954B38, desc: INSERT_LEAF off 22, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3954BD8, prev AAB1/D3954B78, desc: INSERT_LEAF off 67, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3954C18, prev AAB1/D3954BD8, desc: LOCK off 11: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 1 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3954C50, prev AAB1/D3954C18, desc: NEW_CID rel 1663/16387/1259; tid 1/11; cmin: 13, cmax: 24, combo: 12 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3954C90, prev AAB1/D3954C50, desc: NEW_CID rel 1663/16387/1259; tid 5/34; cmin: 24, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3954CD0, prev AAB1/D3954C90, desc: UPDATE off 11 xmax 1202298791 flags 0x00 ; new off 34 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3954DE8, prev AAB1/D3954CD0, desc: INSERT_LEAF off 28, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3954E28, prev AAB1/D3954DE8, desc: INSERT_LEAF off 9, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3954E88, prev AAB1/D3954E28, desc: INSERT_LEAF off 83, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3954EC8, prev AAB1/D3954E88, desc: LOCK off 12: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 1 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3954F00, prev AAB1/D3954EC8, desc: NEW_CID rel 1663/16387/1259; tid 1/12; cmin: 14, cmax: 25, combo: 13 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3954F40, prev AAB1/D3954F00, desc: NEW_CID rel 1663/16387/1259; tid 5/35; cmin: 25, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3954F80, prev AAB1/D3954F40, desc: UPDATE off 12 xmax 1202298791 flags 0x00 ; new off 35 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3955098, prev AAB1/D3954F80, desc: INSERT_LEAF off 50, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D39550D8, prev AAB1/D3955098, desc: INSERT_LEAF off 13, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3955138, prev AAB1/D39550D8, desc: INSERT_LEAF off 105, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3955178, prev AAB1/D3955138, desc: LOCK off 13: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 1 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39551B0, prev AAB1/D3955178, desc: NEW_CID rel 1663/16387/1259; tid 1/13; cmin: 15, cmax: 26, combo: 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39551F0, prev AAB1/D39551B0, desc: NEW_CID rel 1663/16387/1259; tid 5/36; cmin: 26, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3955230, prev AAB1/D39551F0, desc: UPDATE off 13 xmax 1202298791 flags 0x00 ; new off 36 xmax 0, blkref #0: rel 1663/16387/1259 blk 5, blkref #1: rel 1663/16387/1259 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3955348, prev AAB1/D3955230, desc: INSERT_LEAF off 23, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 88/ 88, tx: 1202298791, lsn: AAB1/D3955388, prev AAB1/D3955348, desc: INSERT_LEAF off 23, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D39553E0, prev AAB1/D3955388, desc: INSERT_LEAF off 78, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3955420, prev AAB1/D39553E0, desc: NEW_CID rel 1663/16387/1259; tid 5/26; cmin: 16, cmax: 27, combo: 15 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3955460, prev AAB1/D3955420, desc: NEW_CID rel 1663/16387/1259; tid 5/37; cmin: 27, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D39554A0, prev AAB1/D3955460, desc: HOT_UPDATE off 26 xmax 1202298791 flags 0x20 ; new off 37 xmax 0, blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39554F0, prev AAB1/D39554A0, desc: NEW_CID rel 1663/16387/1259; tid 5/28; cmin: 17, cmax: 28, combo: 16 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3955530, prev AAB1/D39554F0, desc: NEW_CID rel 1663/16387/1259; tid 5/38; cmin: 28, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3955570, prev AAB1/D3955530, desc: HOT_UPDATE off 28 xmax 1202298791 flags 0x20 ; new off 38 xmax 0, blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39555C0, prev AAB1/D3955570, desc: NEW_CID rel 1663/16387/1259; tid 5/29; cmin: 18, cmax: 29, combo: 17 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3955600, prev AAB1/D39555C0, desc: NEW_CID rel 1663/16387/1259; tid 5/39; cmin: 29, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3955640, prev AAB1/D3955600, desc: HOT_UPDATE off 29 xmax 1202298791 flags 0x20 ; new off 39 xmax 0, blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3955690, prev AAB1/D3955640, desc: LOCK off 30: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39556C8, prev AAB1/D3955690, desc: NEW_CID rel 1663/16387/1259; tid 5/30; cmin: 19, cmax: 30, combo: 18 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3955708, prev AAB1/D39556C8, desc: NEW_CID rel 1663/16387/1259; tid 7/4; cmin: 30, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 75/ 1768, tx: 1202298791, lsn: AAB1/D39563B0, prev AAB1/D3956378, desc: UPDATE off 30 xmax 1202298791 flags 0x02 ; new off 4 xmax 0, blkref #0: rel 1663/16387/1259 blk 7 FPW, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3956A98, prev AAB1/D39563B0, desc: INSERT_LEAF off 36, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3956AD8, prev AAB1/D3956A98, desc: INSERT_LEAF off 29, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3956B38, prev AAB1/D3956AD8, desc: INSERT_LEAF off 91, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3956B78, prev AAB1/D3956B38, desc: LOCK off 31: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3956BB0, prev AAB1/D3956B78, desc: NEW_CID rel 1663/16387/1259; tid 5/31; cmin: 20, cmax: 31, combo: 19 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3956BF0, prev AAB1/D3956BB0, desc: NEW_CID rel 1663/16387/1259; tid 7/6; cmin: 31, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3956C30, prev AAB1/D3956BF0, desc: UPDATE off 31 xmax 1202298791 flags 0x00 ; new off 6 xmax 0, blkref #0: rel 1663/16387/1259 blk 7, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3956D48, prev AAB1/D3956C30, desc: INSERT_LEAF off 19, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3956D88, prev AAB1/D3956D48, desc: INSERT_LEAF off 31, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3956DE8, prev AAB1/D3956D88, desc: INSERT_LEAF off 74, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3956E28, prev AAB1/D3956DE8, desc: LOCK off 32: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3956E60, prev AAB1/D3956E28, desc: NEW_CID rel 1663/16387/1259; tid 5/32; cmin: 21, cmax: 32, combo: 20 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3956EA0, prev AAB1/D3956E60, desc: NEW_CID rel 1663/16387/1259; tid 7/8; cmin: 32, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3956EE0, prev AAB1/D3956EA0, desc: UPDATE off 32 xmax 1202298791 flags 0x00 ; new off 8 xmax 0, blkref #0: rel 1663/16387/1259 blk 7, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3956FF8, prev AAB1/D3956EE0, desc: INSERT_LEAF off 3, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3957038, prev AAB1/D3956FF8, desc: INSERT_LEAF off 20, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3957098, prev AAB1/D3957038, desc: INSERT_LEAF off 59, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39570D8, prev AAB1/D3957098, desc: NEW_CID rel 1663/16387/1259; tid 13/4; cmin: 22, cmax: 33, combo: 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3957118, prev AAB1/D39570D8, desc: NEW_CID rel 1663/16387/1259; tid 13/5; cmin: 33, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3957158, prev AAB1/D3957118, desc: HOT_UPDATE off 4 xmax 1202298791 flags 0x20 ; new off 5 xmax 0, blkref #0: rel 1663/16387/1259 blk 13 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3959238, prev AAB1/D39591F8, desc: LOCK off 33: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3959270, prev AAB1/D3959238, desc: NEW_CID rel 1663/16387/1259; tid 5/33; cmin: 23, cmax: 34, combo: 22 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39592B0, prev AAB1/D3959270, desc: NEW_CID rel 1663/16387/1259; tid 7/10; cmin: 34, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D39592F0, prev AAB1/D39592B0, desc: UPDATE off 33 xmax 1202298791 flags 0x00 ; new off 10 xmax 0, blkref #0: rel 1663/16387/1259 blk 7, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3959408, prev AAB1/D39592F0, desc: INSERT_LEAF off 15, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3959448, prev AAB1/D3959408, desc: INSERT_LEAF off 27, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D39594A8, prev AAB1/D3959448, desc: INSERT_LEAF off 70, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D39594E8, prev AAB1/D39594A8, desc: LOCK off 34: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3959520, prev AAB1/D39594E8, desc: NEW_CID rel 1663/16387/1259; tid 5/34; cmin: 24, cmax: 35, combo: 23 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3959560, prev AAB1/D3959520, desc: NEW_CID rel 1663/16387/1259; tid 10/46; cmin: 35, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 75/ 1603, tx: 1202298791, lsn: AAB1/D39595A0, prev AAB1/D3959560, desc: UPDATE off 34 xmax 1202298791 flags 0x02 ; new off 46 xmax 0, blkref #0: rel 1663/16387/1259 blk 10 FPW, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3959BE8, prev AAB1/D39595A0, desc: INSERT_LEAF off 34, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3959C28, prev AAB1/D3959BE8, desc: INSERT_LEAF off 11, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3959C88, prev AAB1/D3959C28, desc: INSERT_LEAF off 89, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3959CC8, prev AAB1/D3959C88, desc: LOCK off 35: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3959D00, prev AAB1/D3959CC8, desc: NEW_CID rel 1663/16387/1259; tid 5/35; cmin: 25, cmax: 36, combo: 24 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3959D40, prev AAB1/D3959D00, desc: NEW_CID rel 1663/16387/1259; tid 11/2; cmin: 36, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 75/ 1840, tx: 1202298791, lsn: AAB1/D395BDC0, prev AAB1/D3959D80, desc: UPDATE off 35 xmax 1202298791 flags 0x02 ; new off 2 xmax 0, blkref #0: rel 1663/16387/1259 blk 11 FPW, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395C508, prev AAB1/D395BDC0, desc: INSERT_LEAF off 58, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D395C548, prev AAB1/D395C508, desc: INSERT_LEAF off 16, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395C5A8, prev AAB1/D395C548, desc: INSERT_LEAF off 113, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D395C5E8, prev AAB1/D395C5A8, desc: LOCK off 36: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395C620, prev AAB1/D395C5E8, desc: NEW_CID rel 1663/16387/1259; tid 5/36; cmin: 26, cmax: 37, combo: 25 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395C660, prev AAB1/D395C620, desc: NEW_CID rel 1663/16387/1259; tid 12/2; cmin: 37, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 75/ 990, tx: 1202298791, lsn: AAB1/D395E640, prev AAB1/D395E568, desc: UPDATE off 36 xmax 1202298791 flags 0x02 ; new off 2 xmax 0, blkref #0: rel 1663/16387/1259 blk 12 FPW, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395EA20, prev AAB1/D395E640, desc: INSERT_LEAF off 28, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 88/ 88, tx: 1202298791, lsn: AAB1/D395EA60, prev AAB1/D395EA20, desc: INSERT_LEAF off 25, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395EAB8, prev AAB1/D395EA60, desc: INSERT_LEAF off 83, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D395EAF8, prev AAB1/D395EAB8, desc: LOCK off 37: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395EB30, prev AAB1/D395EAF8, desc: NEW_CID rel 1663/16387/1259; tid 5/37; cmin: 27, cmax: 38, combo: 26 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395EB70, prev AAB1/D395EB30, desc: NEW_CID rel 1663/16387/1259; tid 12/21; cmin: 38, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D395EBB0, prev AAB1/D395EB70, desc: UPDATE off 37 xmax 1202298791 flags 0x00 ; new off 21 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395ECC8, prev AAB1/D395EBB0, desc: INSERT_LEAF off 48, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D395ED08, prev AAB1/D395ECC8, desc: INSERT_LEAF off 37, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395ED68, prev AAB1/D395ED08, desc: INSERT_LEAF off 103, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D395EDA8, prev AAB1/D395ED68, desc: LOCK off 38: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395EDE0, prev AAB1/D395EDA8, desc: NEW_CID rel 1663/16387/1259; tid 5/38; cmin: 28, cmax: 39, combo: 27 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395EE20, prev AAB1/D395EDE0, desc: NEW_CID rel 1663/16387/1259; tid 12/32; cmin: 39, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D395EE60, prev AAB1/D395EE20, desc: UPDATE off 38 xmax 1202298791 flags 0x00 ; new off 32 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395EF78, prev AAB1/D395EE60, desc: INSERT_LEAF off 66, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D395EFB8, prev AAB1/D395EF78, desc: INSERT_LEAF off 37, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395F018, prev AAB1/D395EFB8, desc: INSERT_LEAF off 121, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D395F058, prev AAB1/D395F018, desc: LOCK off 39: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 5 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395F090, prev AAB1/D395F058, desc: NEW_CID rel 1663/16387/1259; tid 5/39; cmin: 29, cmax: 40, combo: 28 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395F0D0, prev AAB1/D395F090, desc: NEW_CID rel 1663/16387/1259; tid 12/40; cmin: 40, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D395F110, prev AAB1/D395F0D0, desc: UPDATE off 39 xmax 1202298791 flags 0x00 ; new off 40 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 5 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395F228, prev AAB1/D395F110, desc: INSERT_LEAF off 54, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 88/ 88, tx: 1202298791, lsn: AAB1/D395F268, prev AAB1/D395F228, desc: INSERT_LEAF off 29, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395F2C0, prev AAB1/D395F268, desc: INSERT_LEAF off 109, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D395F300, prev AAB1/D395F2C0, desc: LOCK off 4: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 7 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395F338, prev AAB1/D395F300, desc: NEW_CID rel 1663/16387/1259; tid 7/4; cmin: 30, cmax: 41, combo: 29 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395F378, prev AAB1/D395F338, desc: NEW_CID rel 1663/16387/1259; tid 12/41; cmin: 41, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D395F3B8, prev AAB1/D395F378, desc: UPDATE off 4 xmax 1202298791 flags 0x00 ; new off 41 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395F4D0, prev AAB1/D395F3B8, desc: INSERT_LEAF off 42, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D395F510, prev AAB1/D395F4D0, desc: INSERT_LEAF off 34, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395F570, prev AAB1/D395F510, desc: INSERT_LEAF off 97, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D395F5B0, prev AAB1/D395F570, desc: LOCK off 6: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 7 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395F5E8, prev AAB1/D395F5B0, desc: NEW_CID rel 1663/16387/1259; tid 7/6; cmin: 31, cmax: 42, combo: 30 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395F628, prev AAB1/D395F5E8, desc: NEW_CID rel 1663/16387/1259; tid 12/42; cmin: 42, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D395F668, prev AAB1/D395F628, desc: UPDATE off 6 xmax 1202298791 flags 0x00 ; new off 42 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395F780, prev AAB1/D395F668, desc: INSERT_LEAF off 22, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D395F7C0, prev AAB1/D395F780, desc: INSERT_LEAF off 34, blkref #0: rel 1663/16387/2663 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395F820, prev AAB1/D395F7C0, desc: INSERT_LEAF off 77, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D395F860, prev AAB1/D395F820, desc: LOCK off 8: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 7 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395F898, prev AAB1/D395F860, desc: NEW_CID rel 1663/16387/1259; tid 7/8; cmin: 32, cmax: 43, combo: 31 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395F8D8, prev AAB1/D395F898, desc: NEW_CID rel 1663/16387/1259; tid 12/43; cmin: 43, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D395F918, prev AAB1/D395F8D8, desc: UPDATE off 8 xmax 1202298791 flags 0x00 ; new off 43 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395FA30, prev AAB1/D395F918, desc: INSERT_LEAF off 4, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D395FA70, prev AAB1/D395FA30, desc: INSERT_LEAF off 23, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D395FAD0, prev AAB1/D395FA70, desc: INSERT_LEAF off 60, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395FB10, prev AAB1/D395FAD0, desc: NEW_CID rel 1663/16387/1259; tid 13/5; cmin: 33, cmax: 44, combo: 32 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D395FB50, prev AAB1/D395FB10, desc: NEW_CID rel 1663/16387/1259; tid 13/6; cmin: 44, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D395FB90, prev AAB1/D395FB50, desc: HOT_UPDATE off 5 xmax 1202298791 flags 0x20 ; new off 6 xmax 0, blkref #0: rel 1663/16387/1259 blk 13 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3960698, prev AAB1/D3960668, desc: LOCK off 10: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 7 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39606D0, prev AAB1/D3960698, desc: NEW_CID rel 1663/16387/1259; tid 7/10; cmin: 34, cmax: 45, combo: 33 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3960710, prev AAB1/D39606D0, desc: NEW_CID rel 1663/16387/1259; tid 12/44; cmin: 45, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3960750, prev AAB1/D3960710, desc: UPDATE off 10 xmax 1202298791 flags 0x00 ; new off 44 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 7 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3960868, prev AAB1/D3960750, desc: INSERT_LEAF off 17, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D39608A8, prev AAB1/D3960868, desc: INSERT_LEAF off 31, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3960908, prev AAB1/D39608A8, desc: INSERT_LEAF off 72, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3960948, prev AAB1/D3960908, desc: LOCK off 46: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 10 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3960980, prev AAB1/D3960948, desc: NEW_CID rel 1663/16387/1259; tid 10/46; cmin: 35, cmax: 46, combo: 34 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39609C0, prev AAB1/D3960980, desc: NEW_CID rel 1663/16387/1259; tid 12/45; cmin: 46, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3960A00, prev AAB1/D39609C0, desc: UPDATE off 46 xmax 1202298791 flags 0x00 ; new off 45 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 10 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3960B18, prev AAB1/D3960A00, desc: INSERT_LEAF off 39, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3960B58, prev AAB1/D3960B18, desc: INSERT_LEAF off 12, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3960BB8, prev AAB1/D3960B58, desc: INSERT_LEAF off 94, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap len (rec/tot): 54/ 54, tx: 1202298791, lsn: AAB1/D3960BF8, prev AAB1/D3960BB8, desc: LOCK off 2: xid 1202298791: flags 0x00 LOCK_ONLY EXCL_LOCK , blkref #0: rel 1663/16387/1259 blk 11 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3960C30, prev AAB1/D3960BF8, desc: NEW_CID rel 1663/16387/1259; tid 11/2; cmin: 36, cmax: 47, combo: 35 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3960C70, prev AAB1/D3960C30, desc: NEW_CID rel 1663/16387/1259; tid 12/46; cmin: 47, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 279/ 279, tx: 1202298791, lsn: AAB1/D3960CB0, prev AAB1/D3960C70, desc: UPDATE off 2 xmax 1202298791 flags 0x00 ; new off 46 xmax 0, blkref #0: rel 1663/16387/1259 blk 12, blkref #1: rel 1663/16387/1259 blk 11 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3960DC8, prev AAB1/D3960CB0, desc: INSERT_LEAF off 67, blkref #0: rel 1663/16387/2662 blk 4 rmgr: Btree len (rec/tot): 96/ 96, tx: 1202298791, lsn: AAB1/D3960E08, prev AAB1/D3960DC8, desc: INSERT_LEAF off 18, blkref #0: rel 1663/16387/2663 blk 1 rmgr: Btree len (rec/tot): 64/ 64, tx: 1202298791, lsn: AAB1/D3960E68, prev AAB1/D3960E08, desc: INSERT_LEAF off 122, blkref #0: rel 1663/16387/3455 blk 4 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3960EA8, prev AAB1/D3960E68, desc: NEW_CID rel 1663/16387/1259; tid 12/2; cmin: 37, cmax: 48, combo: 36 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3960EE8, prev AAB1/D3960EA8, desc: NEW_CID rel 1663/16387/1259; tid 12/47; cmin: 48, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3960F28, prev AAB1/D3960EE8, desc: HOT_UPDATE off 2 xmax 1202298791 flags 0x20 ; new off 47 xmax 0, blkref #0: rel 1663/16387/1259 blk 12 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3960F78, prev AAB1/D3960F28, desc: NEW_CID rel 1663/16387/1259; tid 12/21; cmin: 38, cmax: 49, combo: 37 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3960FB8, prev AAB1/D3960F78, desc: NEW_CID rel 1663/16387/1259; tid 12/48; cmin: 49, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3960FF8, prev AAB1/D3960FB8, desc: HOT_UPDATE off 21 xmax 1202298791 flags 0x20 ; new off 48 xmax 0, blkref #0: rel 1663/16387/1259 blk 12 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3961048, prev AAB1/D3960FF8, desc: NEW_CID rel 1663/16387/1259; tid 12/32; cmin: 39, cmax: 50, combo: 38 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3961088, prev AAB1/D3961048, desc: NEW_CID rel 1663/16387/1259; tid 12/49; cmin: 50, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D39610C8, prev AAB1/D3961088, desc: HOT_UPDATE off 32 xmax 1202298791 flags 0x20 ; new off 49 xmax 0, blkref #0: rel 1663/16387/1259 blk 12 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3961118, prev AAB1/D39610C8, desc: NEW_CID rel 1663/16387/1259; tid 12/40; cmin: 40, cmax: 51, combo: 39 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3961158, prev AAB1/D3961118, desc: NEW_CID rel 1663/16387/1259; tid 12/50; cmin: 51, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3961198, prev AAB1/D3961158, desc: HOT_UPDATE off 40 xmax 1202298791 flags 0x20 ; new off 50 xmax 0, blkref #0: rel 1663/16387/1259 blk 12 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39611E8, prev AAB1/D3961198, desc: NEW_CID rel 1663/16387/1259; tid 12/41; cmin: 41, cmax: 52, combo: 40 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3961228, prev AAB1/D39611E8, desc: NEW_CID rel 1663/16387/1259; tid 12/51; cmin: 52, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3961268, prev AAB1/D3961228, desc: HOT_UPDATE off 41 xmax 1202298791 flags 0x20 ; new off 51 xmax 0, blkref #0: rel 1663/16387/1259 blk 12 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39612B8, prev AAB1/D3961268, desc: NEW_CID rel 1663/16387/1259; tid 12/42; cmin: 42, cmax: 53, combo: 41 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39612F8, prev AAB1/D39612B8, desc: NEW_CID rel 1663/16387/1259; tid 12/52; cmin: 53, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3961338, prev AAB1/D39612F8, desc: HOT_UPDATE off 42 xmax 1202298791 flags 0x20 ; new off 52 xmax 0, blkref #0: rel 1663/16387/1259 blk 12 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3962CD8, prev AAB1/D3961388, desc: NEW_CID rel 1663/16387/1259; tid 12/43; cmin: 43, cmax: 54, combo: 42 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3962D18, prev AAB1/D3962CD8, desc: NEW_CID rel 1663/16387/1259; tid 12/53; cmin: 54, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3962D58, prev AAB1/D3962D18, desc: HOT_UPDATE off 43 xmax 1202298791 flags 0x20 ; new off 53 xmax 0, blkref #0: rel 1663/16387/1259 blk 12 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3962DA8, prev AAB1/D3962D58, desc: NEW_CID rel 1663/16387/1259; tid 13/6; cmin: 44, cmax: 55, combo: 43 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3962DE8, prev AAB1/D3962DA8, desc: NEW_CID rel 1663/16387/1259; tid 13/8; cmin: 55, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3962E28, prev AAB1/D3962DE8, desc: HOT_UPDATE off 6 xmax 1202298791 flags 0x20 ; new off 8 xmax 0, blkref #0: rel 1663/16387/1259 blk 13 rmgr: Heap len (rec/tot): 245/ 245, tx: 1202295045, lsn: AAB1/D3962E78, prev AAB1/D3962E28, desc: INPLACE off 24, blkref #0: rel 1663/16387/1259 blk 6 rmgr: Heap len (rec/tot): 188/ 188, tx: 1202295045, lsn: AAB1/D3962F70, prev AAB1/D3962E78, desc: INPLACE off 33, blkref #0: rel 1663/16387/1259 blk 0 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963030, prev AAB1/D3962F70, desc: NEW_CID rel 1663/16387/1259; tid 14/4; cmin: 4294967295, cmax: 56, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963070, prev AAB1/D3963030, desc: NEW_CID rel 1663/16387/1259; tid 14/7; cmin: 56, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D39630B0, prev AAB1/D3963070, desc: HOT_UPDATE off 4 xmax 1202298791 flags 0x20 ; new off 7 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963100, prev AAB1/D39630B0, desc: NEW_CID rel 1663/16387/1259; tid 14/5; cmin: 4294967295, cmax: 57, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963140, prev AAB1/D3963100, desc: NEW_CID rel 1663/16387/1259; tid 14/8; cmin: 57, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3963180, prev AAB1/D3963140, desc: HOT_UPDATE off 5 xmax 1202298791 flags 0x20 ; new off 8 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39631D0, prev AAB1/D3963180, desc: NEW_CID rel 1663/16387/1259; tid 14/6; cmin: 4294967295, cmax: 58, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963210, prev AAB1/D39631D0, desc: NEW_CID rel 1663/16387/1259; tid 14/9; cmin: 58, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3963250, prev AAB1/D3963210, desc: HOT_UPDATE off 6 xmax 1202298791 flags 0x20 ; new off 9 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Transaction len (rec/tot): 293/ 293, tx: 1202295045, lsn: AAB1/D39632A0, prev AAB1/D3963250, desc: COMMIT 2023-10-04 22:41:23.878565 UTC; inval msgs: catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 7 catcache 6 catcache 32 catcache 19 relcache 3566558198 relcache 3569625749 relcache 3569625749 relcache 3566558198 snapshot 2608 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39633C8, prev AAB1/D39632A0, desc: NEW_CID rel 1663/16387/2615; tid 0/20; cmin: 4294967295, cmax: 59, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963408, prev AAB1/D39633C8, desc: NEW_CID rel 1663/16387/2615; tid 0/23; cmin: 59, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 68/ 68, tx: 1202298791, lsn: AAB1/D3963448, prev AAB1/D3963408, desc: HOT_UPDATE off 20 xmax 1202298791 flags 0x20 ; new off 23 xmax 0, blkref #0: rel 1663/16387/2615 blk 0 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963490, prev AAB1/D3963448, desc: NEW_CID rel 1663/16387/1259; tid 14/7; cmin: 56, cmax: 60, combo: 44 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39634D0, prev AAB1/D3963490, desc: NEW_CID rel 1663/16387/1259; tid 14/10; cmin: 60, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3963510, prev AAB1/D39634D0, desc: HOT_UPDATE off 7 xmax 1202298791 flags 0x20 ; new off 10 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963560, prev AAB1/D3963510, desc: NEW_CID rel 1663/16387/1259; tid 14/8; cmin: 57, cmax: 61, combo: 45 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39635A0, prev AAB1/D3963560, desc: NEW_CID rel 1663/16387/1259; tid 14/11; cmin: 61, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D39635E0, prev AAB1/D39635A0, desc: HOT_UPDATE off 8 xmax 1202298791 flags 0x20 ; new off 11 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963630, prev AAB1/D39635E0, desc: NEW_CID rel 1663/16387/1259; tid 14/9; cmin: 58, cmax: 62, combo: 46 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3963670, prev AAB1/D3963630, desc: NEW_CID rel 1663/16387/1259; tid 14/12; cmin: 62, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D39636B0, prev AAB1/D3963670, desc: HOT_UPDATE off 9 xmax 1202298791 flags 0x20 ; new off 12 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39679F8, prev AAB1/D39679B8, desc: NEW_CID rel 1663/16387/1259; tid 14/10; cmin: 60, cmax: 63, combo: 47 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3967A38, prev AAB1/D39679F8, desc: NEW_CID rel 1663/16387/1259; tid 14/13; cmin: 63, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3967A78, prev AAB1/D3967A38, desc: HOT_UPDATE off 10 xmax 1202298791 flags 0x20 ; new off 13 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3967AC8, prev AAB1/D3967A78, desc: NEW_CID rel 1663/16387/1259; tid 14/11; cmin: 61, cmax: 64, combo: 48 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3967B08, prev AAB1/D3967AC8, desc: NEW_CID rel 1663/16387/1259; tid 14/14; cmin: 64, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3967B48, prev AAB1/D3967B08, desc: HOT_UPDATE off 11 xmax 1202298791 flags 0x20 ; new off 14 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3967B98, prev AAB1/D3967B48, desc: NEW_CID rel 1663/16387/1259; tid 14/12; cmin: 62, cmax: 65, combo: 49 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3967BD8, prev AAB1/D3967B98, desc: NEW_CID rel 1663/16387/1259; tid 14/15; cmin: 65, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3967C18, prev AAB1/D3967BD8, desc: HOT_UPDATE off 12 xmax 1202298791 flags 0x20 ; new off 15 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F3A8, prev AAB1/D396F368, desc: NEW_CID rel 1663/16387/1259; tid 14/13; cmin: 63, cmax: 66, combo: 50 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F3E8, prev AAB1/D396F3A8, desc: NEW_CID rel 1663/16387/1259; tid 14/16; cmin: 66, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396F428, prev AAB1/D396F3E8, desc: HOT_UPDATE off 13 xmax 1202298791 flags 0x20 ; new off 16 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F478, prev AAB1/D396F428, desc: NEW_CID rel 1663/16387/1259; tid 14/14; cmin: 64, cmax: 67, combo: 51 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F4B8, prev AAB1/D396F478, desc: NEW_CID rel 1663/16387/1259; tid 14/17; cmin: 67, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396F4F8, prev AAB1/D396F4B8, desc: HOT_UPDATE off 14 xmax 1202298791 flags 0x20 ; new off 17 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F548, prev AAB1/D396F4F8, desc: NEW_CID rel 1663/16387/1259; tid 14/15; cmin: 65, cmax: 68, combo: 52 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F588, prev AAB1/D396F548, desc: NEW_CID rel 1663/16387/1259; tid 14/18; cmin: 68, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396F5C8, prev AAB1/D396F588, desc: HOT_UPDATE off 15 xmax 1202298791 flags 0x20 ; new off 18 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F618, prev AAB1/D396F5C8, desc: NEW_CID rel 1663/16387/1259; tid 14/16; cmin: 66, cmax: 69, combo: 53 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F658, prev AAB1/D396F618, desc: NEW_CID rel 1663/16387/1259; tid 14/21; cmin: 69, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396F698, prev AAB1/D396F658, desc: HOT_UPDATE off 16 xmax 1202298791 flags 0x20 ; new off 21 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F6E8, prev AAB1/D396F698, desc: NEW_CID rel 1663/16387/1259; tid 14/17; cmin: 67, cmax: 70, combo: 54 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F728, prev AAB1/D396F6E8, desc: NEW_CID rel 1663/16387/1259; tid 14/22; cmin: 70, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396F768, prev AAB1/D396F728, desc: HOT_UPDATE off 17 xmax 1202298791 flags 0x20 ; new off 22 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F7B8, prev AAB1/D396F768, desc: NEW_CID rel 1663/16387/1259; tid 14/18; cmin: 68, cmax: 71, combo: 55 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F7F8, prev AAB1/D396F7B8, desc: NEW_CID rel 1663/16387/1259; tid 14/23; cmin: 71, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396F838, prev AAB1/D396F7F8, desc: HOT_UPDATE off 18 xmax 1202298791 flags 0x20 ; new off 23 xmax 0, blkref #0: rel 1663/16387/1259 blk 14 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F888, prev AAB1/D396F838, desc: NEW_CID rel 1663/16387/1259; tid 21/3; cmin: 4294967295, cmax: 72, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F8C8, prev AAB1/D396F888, desc: NEW_CID rel 1663/16387/1259; tid 21/5; cmin: 72, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396F908, prev AAB1/D396F8C8, desc: HOT_UPDATE off 3 xmax 1202298791 flags 0x20 ; new off 5 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F958, prev AAB1/D396F908, desc: NEW_CID rel 1663/16387/1259; tid 21/4; cmin: 4294967295, cmax: 73, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396F998, prev AAB1/D396F958, desc: NEW_CID rel 1663/16387/1259; tid 21/6; cmin: 73, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396F9D8, prev AAB1/D396F998, desc: HOT_UPDATE off 4 xmax 1202298791 flags 0x20 ; new off 6 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396FA28, prev AAB1/D396F9D8, desc: NEW_CID rel 1663/16387/1259; tid 22/2; cmin: 4294967295, cmax: 74, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D396FA68, prev AAB1/D396FA28, desc: NEW_CID rel 1663/16387/1259; tid 22/3; cmin: 74, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D396FAA8, prev AAB1/D396FA68, desc: HOT_UPDATE off 2 xmax 1202298791 flags 0x20 ; new off 3 xmax 0, blkref #0: rel 1663/16387/1259 blk 22 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970698, prev AAB1/D396FAF8, desc: NEW_CID rel 1663/16387/1259; tid 17/3; cmin: 4294967295, cmax: 75, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39706D8, prev AAB1/D3970698, desc: NEW_CID rel 1663/16387/1259; tid 17/5; cmin: 75, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3970718, prev AAB1/D39706D8, desc: HOT_UPDATE off 3 xmax 1202298791 flags 0x20 ; new off 5 xmax 0, blkref #0: rel 1663/16387/1259 blk 17 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970768, prev AAB1/D3970718, desc: NEW_CID rel 1663/16387/1259; tid 17/4; cmin: 4294967295, cmax: 76, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39707A8, prev AAB1/D3970768, desc: NEW_CID rel 1663/16387/1259; tid 17/6; cmin: 76, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D39707E8, prev AAB1/D39707A8, desc: HOT_UPDATE off 4 xmax 1202298791 flags 0x20 ; new off 6 xmax 0, blkref #0: rel 1663/16387/1259 blk 17 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970838, prev AAB1/D39707E8, desc: NEW_CID rel 1663/16387/2615; tid 0/21; cmin: 4294967295, cmax: 77, combo: 4294967295 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970878, prev AAB1/D3970838, desc: NEW_CID rel 1663/16387/2615; tid 0/24; cmin: 77, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 68/ 68, tx: 1202298791, lsn: AAB1/D39708B8, prev AAB1/D3970878, desc: HOT_UPDATE off 21 xmax 1202298791 flags 0x20 ; new off 24 xmax 0, blkref #0: rel 1663/16387/2615 blk 0 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970900, prev AAB1/D39708B8, desc: NEW_CID rel 1663/16387/1259; tid 21/5; cmin: 72, cmax: 78, combo: 56 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970940, prev AAB1/D3970900, desc: NEW_CID rel 1663/16387/1259; tid 21/7; cmin: 78, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3970980, prev AAB1/D3970940, desc: HOT_UPDATE off 5 xmax 1202298791 flags 0x20 ; new off 7 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39709D0, prev AAB1/D3970980, desc: NEW_CID rel 1663/16387/1259; tid 21/6; cmin: 73, cmax: 79, combo: 57 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970A10, prev AAB1/D39709D0, desc: NEW_CID rel 1663/16387/1259; tid 21/8; cmin: 79, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3970A50, prev AAB1/D3970A10, desc: HOT_UPDATE off 6 xmax 1202298791 flags 0x20 ; new off 8 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970AA0, prev AAB1/D3970A50, desc: NEW_CID rel 1663/16387/1259; tid 22/3; cmin: 74, cmax: 80, combo: 58 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970AE0, prev AAB1/D3970AA0, desc: NEW_CID rel 1663/16387/1259; tid 22/4; cmin: 80, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3970B20, prev AAB1/D3970AE0, desc: HOT_UPDATE off 3 xmax 1202298791 flags 0x20 ; new off 4 xmax 0, blkref #0: rel 1663/16387/1259 blk 22 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970B70, prev AAB1/D3970B20, desc: NEW_CID rel 1663/16387/1259; tid 17/5; cmin: 75, cmax: 81, combo: 59 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970BB0, prev AAB1/D3970B70, desc: NEW_CID rel 1663/16387/1259; tid 17/9; cmin: 81, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3970BF0, prev AAB1/D3970BB0, desc: HOT_UPDATE off 5 xmax 1202298791 flags 0x20 ; new off 9 xmax 0, blkref #0: rel 1663/16387/1259 blk 17 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970C40, prev AAB1/D3970BF0, desc: NEW_CID rel 1663/16387/1259; tid 17/6; cmin: 76, cmax: 82, combo: 60 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3970C80, prev AAB1/D3970C40, desc: NEW_CID rel 1663/16387/1259; tid 17/10; cmin: 82, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3970CC0, prev AAB1/D3970C80, desc: HOT_UPDATE off 6 xmax 1202298791 flags 0x20 ; new off 10 xmax 0, blkref #0: rel 1663/16387/1259 blk 17 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3972CD0, prev AAB1/D3972C90, desc: NEW_CID rel 1663/16387/1259; tid 21/7; cmin: 78, cmax: 83, combo: 61 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3972D10, prev AAB1/D3972CD0, desc: NEW_CID rel 1663/16387/1259; tid 21/9; cmin: 83, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3972D50, prev AAB1/D3972D10, desc: HOT_UPDATE off 7 xmax 1202298791 flags 0x20 ; new off 9 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3972DA0, prev AAB1/D3972D50, desc: NEW_CID rel 1663/16387/1259; tid 21/8; cmin: 79, cmax: 84, combo: 62 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3972DE0, prev AAB1/D3972DA0, desc: NEW_CID rel 1663/16387/1259; tid 21/10; cmin: 84, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3972E20, prev AAB1/D3972DE0, desc: HOT_UPDATE off 8 xmax 1202298791 flags 0x20 ; new off 10 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3972E70, prev AAB1/D3972E20, desc: NEW_CID rel 1663/16387/1259; tid 22/4; cmin: 80, cmax: 85, combo: 63 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3972EB0, prev AAB1/D3972E70, desc: NEW_CID rel 1663/16387/1259; tid 22/5; cmin: 85, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3972EF0, prev AAB1/D3972EB0, desc: HOT_UPDATE off 4 xmax 1202298791 flags 0x20 ; new off 5 xmax 0, blkref #0: rel 1663/16387/1259 blk 22 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3972F40, prev AAB1/D3972EF0, desc: NEW_CID rel 1663/16387/1259; tid 21/9; cmin: 83, cmax: 86, combo: 64 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3972F80, prev AAB1/D3972F40, desc: NEW_CID rel 1663/16387/1259; tid 21/11; cmin: 86, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3972FC0, prev AAB1/D3972F80, desc: HOT_UPDATE off 9 xmax 1202298791 flags 0x20 ; new off 11 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3973010, prev AAB1/D3972FC0, desc: NEW_CID rel 1663/16387/1259; tid 21/10; cmin: 84, cmax: 87, combo: 65 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3973050, prev AAB1/D3973010, desc: NEW_CID rel 1663/16387/1259; tid 21/12; cmin: 87, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3973090, prev AAB1/D3973050, desc: HOT_UPDATE off 10 xmax 1202298791 flags 0x20 ; new off 12 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39730E0, prev AAB1/D3973090, desc: NEW_CID rel 1663/16387/1259; tid 22/5; cmin: 85, cmax: 88, combo: 66 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3973120, prev AAB1/D39730E0, desc: NEW_CID rel 1663/16387/1259; tid 22/6; cmin: 88, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3973160, prev AAB1/D3973120, desc: HOT_UPDATE off 5 xmax 1202298791 flags 0x20 ; new off 6 xmax 0, blkref #0: rel 1663/16387/1259 blk 22 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39731B0, prev AAB1/D3973160, desc: NEW_CID rel 1663/16387/1259; tid 21/11; cmin: 86, cmax: 89, combo: 67 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39731F0, prev AAB1/D39731B0, desc: NEW_CID rel 1663/16387/1259; tid 21/15; cmin: 89, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3973230, prev AAB1/D39731F0, desc: HOT_UPDATE off 11 xmax 1202298791 flags 0x20 ; new off 15 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3973280, prev AAB1/D3973230, desc: NEW_CID rel 1663/16387/1259; tid 21/12; cmin: 87, cmax: 90, combo: 68 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D39732C0, prev AAB1/D3973280, desc: NEW_CID rel 1663/16387/1259; tid 21/16; cmin: 90, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D3973300, prev AAB1/D39732C0, desc: HOT_UPDATE off 12 xmax 1202298791 flags 0x20 ; new off 16 xmax 0, blkref #0: rel 1663/16387/1259 blk 21 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3973350, prev AAB1/D3973300, desc: NEW_CID rel 1663/16387/1259; tid 22/6; cmin: 88, cmax: 91, combo: 69 rmgr: Heap2 len (rec/tot): 60/ 60, tx: 1202298791, lsn: AAB1/D3973390, prev AAB1/D3973350, desc: NEW_CID rel 1663/16387/1259; tid 22/8; cmin: 91, cmax: 4294967295, combo: 4294967295 rmgr: Heap len (rec/tot): 76/ 76, tx: 1202298791, lsn: AAB1/D39733D0, prev AAB1/D3973390, desc: HOT_UPDATE off 6 xmax 1202298791 flags 0x20 ; new off 8 xmax 0, blkref #0: rel 1663/16387/1259 blk 22 rmgr: Transaction len (rec/tot): 4421/ 4421, tx: 1202298791, lsn: AAB1/D3973420, prev AAB1/D39733D0, desc: COMMIT 2023-10-04 22:41:23.884951 UTC; inval msgs: catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 36 catcache 35 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 36 catcache 35 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 36 catcache 35 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 catcache 50 catcache 49 relcache 132091635 relcache 132091646 relcache 132091619 relcache 132091635 relcache 132091646 relcache 132091619 relcache 132091635 relcache 132091646 relcache 132091619 relcache 132091617 relcache 132091644 relcache 132091635 relcache 132091646 relcache 132091619 relcache 132091617 relcache 132091644 relcache 132091635 relcache 132091646 relcache 132091619 relcache 3498102916 relcache 16407 relcache 16400 relcache 3498102916 relcache 16407 relcache 16400 relcache 3498102916 relcache 16407 relcache 16400 relcache 3498102916 relcache 16407 relcache 16400 relcache 3498102916 relcache 16407 relcache 16400 relcache 3484880351 relcache 3481184220 relcache 3550681910 relcache 3557956661 relcache 3561879248 relcache 3566558198 relcache 3561211565 relcache 3552097563 relcache 3562785676 relcache 3553852461 relcache 3546526549 relcache 3484880351 relcache 3481184220 relcache 3550681910 relcache 3557956661 relcache 3561879248 relcache 3566558198 relcache 3561211565 relcache 3552097563 relcache 3562785676 relcache 3553852461 relcache 3546526549 relcache 3484880351 relcache 3481184220 relcache 3550681910 relcache 3557956661 relcache 3561879248 relcache 3566558198 relcache 3561211565 relcache 3552097563 relcache 3562785676 relcache 3553852461 relcache 3546526549 relcache 3484880351 relcache 3481184220 relcache 3550681910 relcache 3557956661 relcache 3561879248 relcache 3566558198 relcache 3561211565 relcache 3552097563 relcache 3562785676 relcache 3553852461 relcache 3546526549 relcache 3484880351 relcache 3561211565 relcache 3552097563 relcache 3562785676 relcache 3553852461 relcache 3546526549 relcache 3481184220 relcache 3550681910 relcache 3557956661 relcache 3561879248 relcache 3566558198 Attachments: [text/plain] waldump.txt (246.9K, ../../CAMp+ueZQz3yDk7qg42hk6-9gxniYbp-=bG2mgqecErqR5gGGOA@mail.gmail.com/3-waldump.txt) download ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-25 12:57 Andrey M. Borodin <[email protected]> parent: Smolkin Grigory <[email protected]> 2 siblings, 0 replies; 103+ messages in thread From: Andrey M. Borodin @ 2023-10-25 12:57 UTC (permalink / raw) To: Smolkin Grigory <[email protected]>; +Cc: pgsql-hackers > On 25 Oct 2023, at 13:39, Smolkin Grigory <[email protected]> wrote: > > We are running PG13.10 and recently we have encountered what appears to be a bug due to some race condition between ALTER TABLE ... ADD CONSTRAINT and some other catalog-writer, possibly ANALYZ > I've tried to reproduce this scenario with CREATE INDEX and various concurrent statements, but no luck. Maybe it would be possible to reproduce with modifying tests for concurrent index creation. For example add “ANALYZE” here [0]. Keep in mind that for easier reproduction it would make sense to increase transaction count radically. Best regards, Andrey Borodin. [0] https://github.com/postgres/postgres/blob/master/contrib/amcheck/t/002_cic.pl#L34 ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-25 18:06 Tom Lane <[email protected]> parent: Smolkin Grigory <[email protected]> 2 siblings, 1 reply; 103+ messages in thread From: Tom Lane @ 2023-10-25 18:06 UTC (permalink / raw) To: Smolkin Grigory <[email protected]>; +Cc: pgsql-hackers Smolkin Grigory <[email protected]> writes: > We are running PG13.10 and recently we have encountered what appears to be > a bug due to some race condition between ALTER TABLE ... ADD CONSTRAINT and > some other catalog-writer, possibly ANALYZE. > The problem is that after successfully creating index on relation (which > previosly didnt have any indexes), its pg_class.relhasindex remains set to > "false", which is illegal, I think. > Index was built using the following statement: > ALTER TABLE "example" ADD constraint "example_pkey" PRIMARY KEY (id); ALTER TABLE ADD CONSTRAINT would certainly have taken AccessExclusiveLock on the "example" table, which should be sufficient to prevent anything else from touching its pg_class row. The only mechanism I can think of that might bypass that is a manual UPDATE on pg_class, which would just manipulate the row as a row without concern for associated relation-level locks. Any chance that somebody was doing something like that? regards, tom lane ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-26 09:52 Smolkin Grigory <[email protected]> parent: Tom Lane <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Smolkin Grigory @ 2023-10-26 09:52 UTC (permalink / raw) To: pgsql-hackers > ALTER TABLE ADD CONSTRAINT would certainly have taken > AccessExclusiveLock on the "example" table, which should be sufficient > to prevent anything else from touching its pg_class row. The only > mechanism I can think of that might bypass that is a manual UPDATE on > pg_class, which would just manipulate the row as a row without concern > for associated relation-level locks. Any chance that somebody was > doing something like that? No chance. Our infrastructure dont do that, and users dont just have the privileges to mess with pg_catalog. ср, 25 окт. 2023 г. в 21:06, Tom Lane <[email protected]>: > Smolkin Grigory <[email protected]> writes: > > We are running PG13.10 and recently we have encountered what appears to > be > > a bug due to some race condition between ALTER TABLE ... ADD CONSTRAINT > and > > some other catalog-writer, possibly ANALYZE. > > The problem is that after successfully creating index on relation (which > > previosly didnt have any indexes), its pg_class.relhasindex remains set > to > > "false", which is illegal, I think. > > Index was built using the following statement: > > ALTER TABLE "example" ADD constraint "example_pkey" PRIMARY KEY (id); > > ALTER TABLE ADD CONSTRAINT would certainly have taken > AccessExclusiveLock on the "example" table, which should be sufficient > to prevent anything else from touching its pg_class row. The only > mechanism I can think of that might bypass that is a manual UPDATE on > pg_class, which would just manipulate the row as a row without concern > for associated relation-level locks. Any chance that somebody was > doing something like that? > > regards, tom lane > ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-27 04:44 Noah Misch <[email protected]> parent: Smolkin Grigory <[email protected]> 2 siblings, 2 replies; 103+ messages in thread From: Noah Misch @ 2023-10-27 04:44 UTC (permalink / raw) To: Smolkin Grigory <[email protected]>; +Cc: pgsql-hackers On Wed, Oct 25, 2023 at 01:39:41PM +0300, Smolkin Grigory wrote: > We are running PG13.10 and recently we have encountered what appears to be > a bug due to some race condition between ALTER TABLE ... ADD CONSTRAINT and > some other catalog-writer, possibly ANALYZE. > The problem is that after successfully creating index on relation (which > previosly didnt have any indexes), its pg_class.relhasindex remains set to > "false", which is illegal, I think. > Index was built using the following statement: > ALTER TABLE "example" ADD constraint "example_pkey" PRIMARY KEY (id); This is going to be a problem with any operation that does a transactional pg_class update without taking a lock that conflicts with ShareLock. GRANT doesn't lock the table at all, so I can reproduce this in v17 as follows: == session 1 create table t (c int); begin; grant select on t to public; == session 2 alter table t add primary key (c); == back in session 1 commit; We'll likely need to change how we maintain relhasindex or perhaps take a lock in GRANT. > Looking into the WAL via waldump given us the following picture (full > waldump output is attached): > 1202295045 - create index statement > 1202298790 and 1202298791 are some other concurrent operations, > unfortunately I wasnt able to determine what are they Can you explore that as follows? - PITR to just before the COMMIT record. - Save all rows of pg_class. - PITR to just after the COMMIT record. - Save all rows of pg_class. - Diff the two sets of saved rows. Which columns changed? The evidence you've shown would be consistent with a transaction doing GRANT or REVOKE on dozens of tables. If the changed column is something other than relacl, that would be great to know. On the off-chance it's relevant, what extensions do you have (\dx in psql)? ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-27 10:03 Smolkin Grigory <[email protected]> parent: Noah Misch <[email protected]> 1 sibling, 0 replies; 103+ messages in thread From: Smolkin Grigory @ 2023-10-27 10:03 UTC (permalink / raw) To: pgsql-hackers > This is going to be a problem with any operation that does a transactional > pg_class update without taking a lock that conflicts with ShareLock. GRANT > doesn't lock the table at all, so I can reproduce this in v17 as follows: > > == session 1 > create table t (c int); > begin; > grant select on t to public; > > == session 2 > alter table t add primary key (c); > > == back in session 1 > commit; > > > We'll likely need to change how we maintain relhasindex or perhaps take a lock > in GRANT. Oh, that explains it. Thank you very much. > Can you explore that as follows? > >- PITR to just before the COMMIT record. >- Save all rows of pg_class. >- PITR to just after the COMMIT record. >- Save all rows of pg_class. >- Diff the two sets of saved rows. Sure, but it will take some time, its a large db with lots of WAL segments to apply. > extensions extname | extversion --------------------+------------ plpgsql | 1.0 pg_stat_statements | 1.8 pg_buffercache | 1.3 pgstattuple | 1.5 ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-27 18:48 Noah Misch <[email protected]> parent: Noah Misch <[email protected]> 1 sibling, 1 reply; 103+ messages in thread From: Noah Misch @ 2023-10-27 18:48 UTC (permalink / raw) To: Smolkin Grigory <[email protected]>; +Cc: pgsql-hackers On Thu, Oct 26, 2023 at 09:44:04PM -0700, Noah Misch wrote: > On Wed, Oct 25, 2023 at 01:39:41PM +0300, Smolkin Grigory wrote: > > We are running PG13.10 and recently we have encountered what appears to be > > a bug due to some race condition between ALTER TABLE ... ADD CONSTRAINT and > > some other catalog-writer, possibly ANALYZE. > > The problem is that after successfully creating index on relation (which > > previosly didnt have any indexes), its pg_class.relhasindex remains set to > > "false", which is illegal, I think. It's damaging. The table will behave like it has no indexes. If something adds an index later, old indexes will reappear, corrupt, having not received updates during the relhasindex=false era. ("pg_amcheck --heapallindexed" can detect this.) > > Index was built using the following statement: > > ALTER TABLE "example" ADD constraint "example_pkey" PRIMARY KEY (id); > > This is going to be a problem with any operation that does a transactional > pg_class update without taking a lock that conflicts with ShareLock. GRANT > doesn't lock the table at all, so I can reproduce this in v17 as follows: > > == session 1 > create table t (c int); > begin; > grant select on t to public; > > == session 2 > alter table t add primary key (c); > > == back in session 1 > commit; > > > We'll likely need to change how we maintain relhasindex or perhaps take a lock > in GRANT. The main choice is accepting more DDL blocking vs. accepting inefficient relcache builds. Options I'm seeing: === "more DDL blocking" option family B1. Take ShareUpdateExclusiveLock in GRANT, REVOKE, and anything that makes transactional pg_class updates without holding some stronger lock. New asserts could catch future commands failing to do this. B2. Take some shorter-lived lock around pg_class tuple formation, such that GRANT blocks CREATE INDEX, but two CREATE INDEX don't block each other. Anything performing a transactional update of a pg_class row would acquire the lock in exclusive mode before fetching the old tuple and hold it till end of transaction. relhasindex=true in-place updates would acquire it the same way, but they would release it after the inplace update. I expect a new heavyweight lock type, e.g. LOCKTAG_RELATION_DEFINITION, with the same key as LOCKTAG_RELATION. This has less blocking than the previous option, but it's more complicated to explain to both users and developers. B3. Have CREATE INDEX do an EvalPlanQual()-style thing to update all successor tuple versions. Like the previous option, this would require new locking, but the new lock would not need to persist till end of xact. It would be even more complicated to explain to users and developers. (If this is promising enough to warrant more detail, let me know.) B4. Use transactional updates to set relhasindex=true. Two CREATE INDEX commands on the same table would block each other. If we did it the way most DDL does today, they'd get "tuple concurrently updated" failures after the blocking ends. === "inefficient relcache builds" option family R1. Ignore relhasindex; possibly remove it in v17. Relcache builds et al. will issue more superfluous queries. R2. As a weird variant of the previous option, keep relhasindex and make all transactional updates of pg_class set relhasindex=true pessimistically. (VACUUM will set it back to false.) === other O1. This is another case where the sometimes-discussed "pg_class_nt" for nontransactional columns would help. I'm ruling that out as too hard to back-patch. Are there other options important to consider? I currently like (B1) the most, followed closely by (R1) and (B2). A key unknown is the prevalence of index-free tables. Low prevalence would argue in favor of (R1). In my limited experience, they've been rare. That said, I assume relcache builds happen a lot more than GRANTs, so it's harder to bound the damage from (R1) compared to the damage from (B1). Thoughts on this decision? Thanks, nm ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-27 19:32 Tom Lane <[email protected]> parent: Noah Misch <[email protected]> 0 siblings, 1 reply; 103+ messages in thread From: Tom Lane @ 2023-10-27 19:32 UTC (permalink / raw) To: Noah Misch <[email protected]>; +Cc: Smolkin Grigory <[email protected]>; pgsql-hackers Noah Misch <[email protected]> writes: > On Thu, Oct 26, 2023 at 09:44:04PM -0700, Noah Misch wrote: >> We'll likely need to change how we maintain relhasindex or perhaps take a lock >> in GRANT. > The main choice is accepting more DDL blocking vs. accepting inefficient > relcache builds. Options I'm seeing: It looks to me like you're only thinking about relhasindex, but it seems to me that any call of heap_inplace_update brings some risk of this kind. Excluding the bootstrap-mode-only usage in create_toast_table, I see four callers: * index_update_stats updating a pg_class tuple's relhasindex, relpages, reltuples, relallvisible * vac_update_relstats updating a pg_class tuple's relpages, reltuples, relallvisible, relhasindex, relhasrules, relhastriggers, relfrozenxid, relminmxid * vac_update_datfrozenxid updating a pg_database tuple's datfrozenxid, datminmxid * dropdb updating a pg_database tuple's datconnlimit So we have just as much of a problem with GRANTs on databases as GRANTs on relations. Also, it looks like we can lose knowledge of the presence of rules and triggers, which seems nearly as bad as forgetting about indexes. The rest of these updates might not be correctness-critical, although I wonder how bollixed things could get if we forget an advancement of relfrozenxid or datfrozenxid (especially if the calling transaction goes on to make other changes that assume that the update happened). BTW, vac_update_datfrozenxid believes (correctly I think) that it cannot use the syscache copy of a tuple as the basis for in-place update, because syscache will have detoasted any toastable fields. These other callers are ignoring that, which seems like it should result in heap_inplace_update failing with "wrong tuple length". I wonder how come we're not seeing reports of that from the field. I'm inclined to propose that heap_inplace_update should check to make sure that it's operating on the latest version of the tuple (including, I guess, waiting for an uncommitted update?) and throw error if not. I think this is what your B3 option is, but maybe I misinterpreted. It might be better to throw error immediately instead of waiting to see if the other updater commits. regards, tom lane ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-27 21:49 Noah Misch <[email protected]> parent: Tom Lane <[email protected]> 0 siblings, 1 reply; 103+ messages in thread From: Noah Misch @ 2023-10-27 21:49 UTC (permalink / raw) To: Tom Lane <[email protected]>; +Cc: Smolkin Grigory <[email protected]>; pgsql-hackers On Fri, Oct 27, 2023 at 03:32:26PM -0400, Tom Lane wrote: > Noah Misch <[email protected]> writes: > > On Thu, Oct 26, 2023 at 09:44:04PM -0700, Noah Misch wrote: > >> We'll likely need to change how we maintain relhasindex or perhaps take a lock > >> in GRANT. > > > The main choice is accepting more DDL blocking vs. accepting inefficient > > relcache builds. Options I'm seeing: > > It looks to me like you're only thinking about relhasindex, but it > seems to me that any call of heap_inplace_update brings some > risk of this kind. Excluding the bootstrap-mode-only usage in > create_toast_table, I see four callers: > > * index_update_stats updating a pg_class tuple's > relhasindex, relpages, reltuples, relallvisible > > * vac_update_relstats updating a pg_class tuple's > relpages, reltuples, relallvisible, relhasindex, relhasrules, > relhastriggers, relfrozenxid, relminmxid > > * vac_update_datfrozenxid updating a pg_database tuple's > datfrozenxid, datminmxid > > * dropdb updating a pg_database tuple's datconnlimit > > So we have just as much of a problem with GRANTs on databases > as GRANTs on relations. Also, it looks like we can lose > knowledge of the presence of rules and triggers, which seems > nearly as bad as forgetting about indexes. The rest of these > updates might not be correctness-critical, although I wonder > how bollixed things could get if we forget an advancement of > relfrozenxid or datfrozenxid (especially if the calling > transaction goes on to make other changes that assume that > the update happened). Thanks for researching that. Let's treat frozenxid stuff as critical; I wouldn't want to advance XID limits based on a datfrozenxid that later gets rolled back. I agree relhasrules and relhastriggers are also critical. The "inefficient relcache builds" option family can't solve cases like relfrozenxid and datconnlimit, so that leaves us with the "more DDL blocking" option family. > BTW, vac_update_datfrozenxid believes (correctly I think) that > it cannot use the syscache copy of a tuple as the basis for in-place > update, because syscache will have detoasted any toastable fields. > These other callers are ignoring that, which seems like it should > result in heap_inplace_update failing with "wrong tuple length". > I wonder how come we're not seeing reports of that from the field. Good question. Perhaps we'll need some test cases that exercise each inplace update against a row having a toast pointer. It's too easy to go a long time without encountering those in the field. > I'm inclined to propose that heap_inplace_update should check to > make sure that it's operating on the latest version of the tuple > (including, I guess, waiting for an uncommitted update?) and throw > error if not. I think this is what your B3 option is, but maybe > I misinterpreted. It might be better to throw error immediately > instead of waiting to see if the other updater commits. That's perhaps closer to B2. To be pedantic, B3 was about not failing or waiting for GRANT to commit but instead inplace-updating every member of the update chain. For B2, I was thinking we don't need to error. There are two problematic orders of events. The easy one is heap_inplace_update() mutating a tuple that already has an xmax. That's the one in the test case upthread, and detecting it is trivial. The harder one is heap_inplace_update() mutating a tuple after GRANT fetches the old tuple, before GRANT enters heap_update(). I anticipate a new locktag per catalog that can receive inplace updates, i.e. LOCKTAG_RELATION_DEFINITION and LOCKTAG_DATABASE_DEFINITION. Here's a walk-through for the pg_database case. GRANT will use the following sequence of events: - acquire LOCKTAG_DATABASE_DEFINITION in exclusive mode - fetch latest pg_database tuple - heap_update() - COMMIT, releasing LOCKTAG_DATABASE_DEFINITION vac_update_datfrozenxid() sequence of events: - acquire LOCKTAG_DATABASE_DEFINITION in exclusive mode - (now, all GRANTs on the given database have committed or aborted) - fetch latest pg_database tuple - heap_inplace_update() - release LOCKTAG_DATABASE_DEFINITION, even if xact not ending - continue with other steps, e.g. vac_truncate_clog() How does that compare to what you envisioned? vac_update_datfrozenxid() could further use xmax as a best-efforts thing to catch conflict with manual UPDATE statements, but it wouldn't solve the case where the UPDATE had fetched the tuple but not yet heap_update()'d it. ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-27 22:40 Tom Lane <[email protected]> parent: Noah Misch <[email protected]> 0 siblings, 1 reply; 103+ messages in thread From: Tom Lane @ 2023-10-27 22:40 UTC (permalink / raw) To: Noah Misch <[email protected]>; +Cc: Smolkin Grigory <[email protected]>; pgsql-hackers Noah Misch <[email protected]> writes: > On Fri, Oct 27, 2023 at 03:32:26PM -0400, Tom Lane wrote: >> I'm inclined to propose that heap_inplace_update should check to >> make sure that it's operating on the latest version of the tuple >> (including, I guess, waiting for an uncommitted update?) and throw >> error if not. I think this is what your B3 option is, but maybe >> I misinterpreted. It might be better to throw error immediately >> instead of waiting to see if the other updater commits. > That's perhaps closer to B2. To be pedantic, B3 was about not failing or > waiting for GRANT to commit but instead inplace-updating every member of the > update chain. For B2, I was thinking we don't need to error. There are two > problematic orders of events. The easy one is heap_inplace_update() mutating > a tuple that already has an xmax. That's the one in the test case upthread, > and detecting it is trivial. The harder one is heap_inplace_update() mutating > a tuple after GRANT fetches the old tuple, before GRANT enters heap_update(). Ugh ... you're right, what I was imagining would not catch that last case. > I anticipate a new locktag per catalog that can receive inplace updates, > i.e. LOCKTAG_RELATION_DEFINITION and LOCKTAG_DATABASE_DEFINITION. We could perhaps make this work by using the existing tuple-lock infrastructure, rather than inventing new locktags (a choice that spills to a lot of places including clients that examine pg_locks). I would prefer though to find a solution that only depends on making heap_inplace_update protect itself, without high-level cooperation from the possibly-interfering updater. This is basically because I'm still afraid that we're defining the problem too narrowly. For one thing, I have nearly zero confidence that GRANT et al are the only problematic source of conflicting transactional updates. For another, I'm worried that some extension may be using heap_inplace_update against a catalog we're not considering here. I'd also like to find a solution that fixes the case of a conflicting manual UPDATE (although certainly that's a stretch goal we may not be able to reach). I wonder if there's a way for heap_inplace_update to mark the tuple header as just-updated in a way that regular heap_update could recognize. (For standard catalog updates, we'd then end up erroring in simple_heap_update, which I think is fine.) We can't update xmin, because the VACUUM callers don't have an XID; but maybe there's some other way? I'm speculating about putting a funny value into xmax, or something like that, and having heap_update check that what it sees in xmax matches what was in the tuple the update started with. Or we could try to get rid of in-place updates, but that seems like a mighty big lift. All of the existing callers, except maybe the johnny-come-lately dropdb usage, have solid documented reasons to do it that way. regards, tom lane ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-10-27 23:26 Noah Misch <[email protected]> parent: Tom Lane <[email protected]> 0 siblings, 1 reply; 103+ messages in thread From: Noah Misch @ 2023-10-27 23:26 UTC (permalink / raw) To: Tom Lane <[email protected]>; +Cc: Smolkin Grigory <[email protected]>; pgsql-hackers On Fri, Oct 27, 2023 at 06:40:55PM -0400, Tom Lane wrote: > Noah Misch <[email protected]> writes: > > On Fri, Oct 27, 2023 at 03:32:26PM -0400, Tom Lane wrote: > >> I'm inclined to propose that heap_inplace_update should check to > >> make sure that it's operating on the latest version of the tuple > >> (including, I guess, waiting for an uncommitted update?) and throw > >> error if not. I think this is what your B3 option is, but maybe > >> I misinterpreted. It might be better to throw error immediately > >> instead of waiting to see if the other updater commits. > > > That's perhaps closer to B2. To be pedantic, B3 was about not failing or > > waiting for GRANT to commit but instead inplace-updating every member of the > > update chain. For B2, I was thinking we don't need to error. There are two > > problematic orders of events. The easy one is heap_inplace_update() mutating > > a tuple that already has an xmax. That's the one in the test case upthread, > > and detecting it is trivial. The harder one is heap_inplace_update() mutating > > a tuple after GRANT fetches the old tuple, before GRANT enters heap_update(). > > Ugh ... you're right, what I was imagining would not catch that last case. > > > I anticipate a new locktag per catalog that can receive inplace updates, > > i.e. LOCKTAG_RELATION_DEFINITION and LOCKTAG_DATABASE_DEFINITION. > > We could perhaps make this work by using the existing tuple-lock > infrastructure, rather than inventing new locktags (a choice that > spills to a lot of places including clients that examine pg_locks). That could be okay. It would be weird to reuse a short-term lock like that one as something held till end of transaction. But the alternative of new locktags ain't perfect, as you say. > I would prefer though to find a solution that only depends on making > heap_inplace_update protect itself, without high-level cooperation > from the possibly-interfering updater. This is basically because > I'm still afraid that we're defining the problem too narrowly. > For one thing, I have nearly zero confidence that GRANT et al are > the only problematic source of conflicting transactional updates. Likewise here, but I have fair confidence that an assertion would flush out the rest. heap_inplace_update() would assert that the backend holds one of the acceptable locks. It could even be an elog; heap_inplace_update() can tolerate that cost. > For another, I'm worried that some extension may be using > heap_inplace_update against a catalog we're not considering here. A pgxn search finds "citus" using heap_inplace_update(). > I'd also like to find a solution that fixes the case of a conflicting > manual UPDATE (although certainly that's a stretch goal we may not be > able to reach). It would be nice. > I wonder if there's a way for heap_inplace_update to mark the tuple > header as just-updated in a way that regular heap_update could > recognize. (For standard catalog updates, we'd then end up erroring > in simple_heap_update, which I think is fine.) We can't update xmin, > because the VACUUM callers don't have an XID; but maybe there's some > other way? I'm speculating about putting a funny value into xmax, > or something like that, and having heap_update check that what it > sees in xmax matches what was in the tuple the update started with. Hmmm. Achieving it without an XID would be the real trick. (With an XID, we could use xl_heap_lock like heap_update() does.) Thinking out loud, what if heap_inplace_update() sets HEAP_XMAX_INVALID and xmax = TransactionIdAdvance(xmax)? Or change t_ctid in a similar way. Then regular heap_update() could complain if the field changed vs. last seen value. This feels like something to regret later in terms of limiting our ability to harness those fields for more-valuable ends or compact them away in a future page format. I can't pinpoint a specific loss, so the idea might have legs. Nontransactional data in separate tables or in new metapages smells like the right long-term state. A project wanting to reuse the tuple header bits could introduce such storage to unblock its own bit reuse. > Or we could try to get rid of in-place updates, but that seems like > a mighty big lift. All of the existing callers, except maybe > the johnny-come-lately dropdb usage, have solid documented reasons > to do it that way. Yes, removing that smells problematic. ^ permalink raw reply [nested|flat] 103+ messages in thread
* Re: race condition in pg_class @ 2023-11-02 03:09 Noah Misch <[email protected]> parent: Noah Misch <[email protected]> 0 siblings, 0 replies; 103+ messages in thread From: Noah Misch @ 2023-11-02 03:09 UTC (permalink / raw) To: Tom Lane <[email protected]>; +Cc: Smolkin Grigory <[email protected]>; pgsql-hackers I prototyped two ways, one with a special t_ctid and one with LockTuple(). On Fri, Oct 27, 2023 at 04:26:12PM -0700, Noah Misch wrote: > On Fri, Oct 27, 2023 at 06:40:55PM -0400, Tom Lane wrote: > > Noah Misch <[email protected]> writes: > > > On Fri, Oct 27, 2023 at 03:32:26PM -0400, Tom Lane wrote: > > > I anticipate a new locktag per catalog that can receive inplace updates, > > > i.e. LOCKTAG_RELATION_DEFINITION and LOCKTAG_DATABASE_DEFINITION. > > > > We could perhaps make this work by using the existing tuple-lock > > infrastructure, rather than inventing new locktags (a choice that > > spills to a lot of places including clients that examine pg_locks). > > That could be okay. It would be weird to reuse a short-term lock like that > one as something held till end of transaction. But the alternative of new > locktags ain't perfect, as you say. That worked. > > I would prefer though to find a solution that only depends on making > > heap_inplace_update protect itself, without high-level cooperation > > from the possibly-interfering updater. This is basically because > > I'm still afraid that we're defining the problem too narrowly. > > For one thing, I have nearly zero confidence that GRANT et al are > > the only problematic source of conflicting transactional updates. > > Likewise here, but I have fair confidence that an assertion would flush out > the rest. heap_inplace_update() would assert that the backend holds one of > the acceptable locks. It could even be an elog; heap_inplace_update() can > tolerate that cost. That check would fall in both heap_inplace_update() and heap_update(). After all, a heap_inplace_update() check won't detect an omission in GRANT. > > For another, I'm worried that some extension may be using > > heap_inplace_update against a catalog we're not considering here. > > A pgxn search finds "citus" using heap_inplace_update(). > > > I'd also like to find a solution that fixes the case of a conflicting > > manual UPDATE (although certainly that's a stretch goal we may not be > > able to reach). > > It would be nice. I expect most approaches could get there by having ExecModifyTable() arrange for the expected locking or other actions. That's analogous to how heap_update() takes care of sinval even for a manual UPDATE. > > I wonder if there's a way for heap_inplace_update to mark the tuple > > header as just-updated in a way that regular heap_update could > > recognize. (For standard catalog updates, we'd then end up erroring > > in simple_heap_update, which I think is fine.) We can't update xmin, > > because the VACUUM callers don't have an XID; but maybe there's some > > other way? I'm speculating about putting a funny value into xmax, > > or something like that, and having heap_update check that what it > > sees in xmax matches what was in the tuple the update started with. > > Hmmm. Achieving it without an XID would be the real trick. (With an XID, we > could use xl_heap_lock like heap_update() does.) Thinking out loud, what if > heap_inplace_update() sets HEAP_XMAX_INVALID and xmax = > TransactionIdAdvance(xmax)? Or change t_ctid in a similar way. Then regular > heap_update() could complain if the field changed vs. last seen value. This > feels like something to regret later in terms of limiting our ability to > harness those fields for more-valuable ends or compact them away in a future > page format. I can't pinpoint a specific loss, so the idea might have legs. > Nontransactional data in separate tables or in new metapages smells like the > right long-term state. A project wanting to reuse the tuple header bits could > introduce such storage to unblock its own bit reuse. heap_update() does not have the pre-modification xmax today, so I used t_ctid. heap_modify_tuple() preserves t_ctid, so heap_update() already has the pre-modification t_ctid in key cases. For details of how the prototype uses t_ctid, see comment at "#define InplaceCanaryOffsetNumber". The prototype doesn't prevent corruption in the following scenario, because the aborted ALTER TABLE RENAME overwrites the special t_ctid: == session 1 drop table t; create table t (c int); begin; -- in gdb, set breakpoint on heap_modify_tuple grant select on t to public; == session 2 alter table t add primary key (c); begin; alter table t rename to t2; rollback; == back in session 1 -- release breakpoint -- want error (would get it w/o the begin;alter;rollback) commit; I'm missing how to mark the tuple in a fashion accessible to a second heap_update() after a rolled-back heap_update(). The mark needs enough bits "N" so it's implausible for 2^N inplace updates to happen between GRANT fetching the old tuple and GRANT completing heap_update(). Looking for bits that could persist across a rolled-back heap_update(), we have 3 in t_ctid, 2 in t_infomask2, and 0 in xmax. I definitely don't want to paint us into a corner by spending the t_infomask2 bits on this. Even if I did, 2^(3+2)=32 wouldn't clearly be enough inplace updates. Is there a way to salvage the goal of fixing the bug without modifying code like ExecGrant_common()? If not, I'm inclined to pick from one of the following designs: - Acquire ShareUpdateExclusiveLock in GRANT ((B1) from previous list). It does make GRANT more intrusive; e.g. GRANT will cancel autovacuum. I'm leaning toward this one for two reasons. First, it doesn't slow heap_update() outside of assert builds. Second, it makes the GRANT experience more like the rest our DDL, in that concurrent DDL will make GRANT block, not fail. - GRANT passes to heapam the fixed-size portion of the pre-modification tuple. heap_update() compares those bytes to the oldtup in shared buffers to see if an inplace update happened. (HEAD could get the bytes from a new heap_update() parameter, while back branches would need a different passing approach.) - LockTuple(), as seen in its attached prototype. I like this least at the moment, because it changes pg_locks content without having a clear advantage over the previous option. Also, the prototype has enough FIXME markers that I expect this to get hairy before it's done. I might change my preference after further prototypes. Does anyone have a strong preference between those? Briefly, I did consider these additional alternatives: - Just accept the yet-rarer chance of corruption from this message's test procedure. - Hold a buffer lock long enough to solve things. - Remember the tuples where we overwrote a special t_ctid, and reverse the overwrite during abort processing. But I/O in the abort path sounds bad. Thanks, nm Author: Noah Misch <[email protected]> Commit: Noah Misch <[email protected]> diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 14de815..c0c33e9 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -2801,6 +2801,10 @@ l1: HeapTupleHeaderSetXmax(tp.t_data, new_xmax); HeapTupleHeaderSetCmax(tp.t_data, cid, iscombo); /* Make sure there is no forward chain link in t_ctid */ + /* + * FIXME this will overwrite any InplaceCanary ctid. Leave c_ctid + * unchanged? Accept that a rolled-back DROP could undo the protection? + */ tp.t_data->t_ctid = tp.t_self; /* Signal that this is actually a move into another partition */ @@ -3348,6 +3352,8 @@ l2: if (!HeapTupleSatisfiesVisibility(&oldtup, crosscheck, buffer)) { result = TM_Updated; + /* FiXME will InplaceCanary mechanism have race conditions w/ this + * or other t_ctid asserts in this file? */ Assert(!ItemPointerEquals(&oldtup.t_self, &oldtup.t_data->t_ctid)); } } @@ -3730,6 +3736,13 @@ l2: id_has_external, &old_key_copied); + /* FIXME missing anything important via the IsValid tests? */ + if (ItemPointerIsValid(&oldtup.t_data->t_ctid) && + ItemPointerIsValid(&newtup->t_data->t_ctid) && + ItemPointerGetOffsetNumber(&oldtup.t_data->t_ctid) == InplaceCanaryOffsetNumber && + !ItemPointerEquals(&oldtup.t_data->t_ctid, &newtup->t_data->t_ctid)) + elog(ERROR, "tuple concurrently updated"); + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); @@ -4747,6 +4760,11 @@ failed: * updated, we need to follow the update chain to lock the new versions of * the tuple as well. */ + /* + * FIXME this will overwrite any InplaceCanary ctid. Leave c_ctid + * unchanged? Accept that SELECT FOR UPDATE on the catalog table could + * undo the protection? + */ if (HEAP_XMAX_IS_LOCKED_ONLY(new_infomask)) tuple->t_data->t_ctid = *tid; @@ -5892,6 +5910,7 @@ heap_inplace_update(Relation relation, HeapTuple tuple) HeapTupleHeader htup; uint32 oldlen; uint32 newlen; + HeapTupleData oldtup; /* * For now, we don't allow parallel updates. Unlike a regular update, @@ -5922,12 +5941,29 @@ heap_inplace_update(Relation relation, HeapTuple tuple) if (oldlen != newlen || htup->t_hoff != tuple->t_data->t_hoff) elog(ERROR, "wrong tuple length"); + /* evaluate whether updated */ + /* FIXME wait for a concurrent updater, in case it aborts */ + oldtup.t_tableOid = RelationGetRelid(relation); + oldtup.t_data = htup; + oldtup.t_len = ItemIdGetLength(lp); + oldtup.t_self = tuple->t_self; + if (TM_Ok != + HeapTupleSatisfiesUpdate(&oldtup, GetCurrentCommandId(false), buffer)) + elog(ERROR, "tuple concurrently updated"); + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); memcpy((char *) htup + htup->t_hoff, (char *) tuple->t_data + tuple->t_data->t_hoff, newlen); + if (ItemPointerGetOffsetNumber(&htup->t_ctid) == + InplaceCanaryOffsetNumber) + BlockIdRetreat(&htup->t_ctid.ip_blkid); + else + ItemPointerSet(&htup->t_ctid, + MaxBlockNumber, + InplaceCanaryOffsetNumber); MarkBufferDirty(buffer); @@ -5945,6 +5981,7 @@ heap_inplace_update(Relation relation, HeapTuple tuple) XLogRegisterBuffer(0, buffer, REGBUF_STANDARD); XLogRegisterBufData(0, (char *) htup + htup->t_hoff, newlen); + /* don't log t_ctid: concurrent changes not happening in recovery */ /* inplace updates aren't decoded atm, don't log the origin */ recptr = XLogInsert(RM_HEAP_ID, XLOG_HEAP_INPLACE); diff --git a/src/include/storage/block.h b/src/include/storage/block.h index 31a036d..f8d9157 100644 --- a/src/include/storage/block.h +++ b/src/include/storage/block.h @@ -105,4 +105,14 @@ BlockIdGetBlockNumber(const BlockIdData *blockId) return (((BlockNumber) blockId->bi_hi) << 16) | ((BlockNumber) blockId->bi_lo); } +/* wraps on underflow, avoids InvalidBlockNumber */ +static inline void +BlockIdRetreat(BlockIdData *blockId) +{ + BlockNumber proposal = BlockIdGetBlockNumber(blockId) - 1; + if (proposal == InvalidBlockNumber) + proposal = MaxBlockNumber; + BlockIdSet(blockId, proposal); +} + #endif /* BLOCK_H */ diff --git a/src/include/storage/off.h b/src/include/storage/off.h index 3540308..8ff776a 100644 --- a/src/include/storage/off.h +++ b/src/include/storage/off.h @@ -27,6 +27,19 @@ typedef uint16 OffsetNumber; #define FirstOffsetNumber ((OffsetNumber) 1) #define MaxOffsetNumber ((OffsetNumber) (BLCKSZ / sizeof(ItemIdData))) +/* + * If a t_ctid contains InplaceCanaryOffsetNumber, it's a special ctid + * signifying that the tuple received a heap_inplace_update(). This is + * expected only in system catalogs, though extensions can use it elsewhere. + * (Offsets greater than MaxOffsetNumber are otherwise unattested.) The + * BlockNumber acts as a counter to distinguish multiple inplace updates. It + * starts at MaxBlockNumber, counts down to 0, and wraps back to + * MaxBlockNumber after 4B inplace updates. (Counting upward or other ways + * would be fine, but this choice maximizes these special TIDs looking + * different from regular TIDs.) + */ +#define InplaceCanaryOffsetNumber (InvalidOffsetNumber - 1) + /* ---------------- * support macros * ---------------- diff --git a/src/test/isolation/expected/intra-grant-inplace.out b/src/test/isolation/expected/intra-grant-inplace.out new file mode 100644 index 0000000..e7404e8 --- /dev/null +++ b/src/test/isolation/expected/intra-grant-inplace.out @@ -0,0 +1,29 @@ +Parsed test spec with 2 sessions + +starting permutation: b1 g1 s2 a2 s2 c1 s2 +step b1: BEGIN ISOLATION LEVEL READ COMMITTED; +step g1: GRANT SELECT ON intra_grant_inplace TO PUBLIC; +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + +step a2: ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); +ERROR: tuple concurrently updated +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + +step c1: COMMIT; +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule index b2be88e..fcc4ad4 100644 --- a/src/test/isolation/isolation_schedule +++ b/src/test/isolation/isolation_schedule @@ -86,6 +86,7 @@ test: alter-table-3 test: alter-table-4 test: create-trigger test: sequence-ddl +test: intra-grant-inplace test: async-notify test: vacuum-no-cleanup-lock test: timeouts diff --git a/src/test/isolation/specs/intra-grant-inplace.spec b/src/test/isolation/specs/intra-grant-inplace.spec new file mode 100644 index 0000000..b5720c5 --- /dev/null +++ b/src/test/isolation/specs/intra-grant-inplace.spec @@ -0,0 +1,29 @@ +# GRANT's lock is the catalog tuple xmax. GRANT doesn't acquire a heavyweight +# lock on the object undergoing an ACL change. In-place updates, such as +# relhasindex=true, need special code to cope. +# +# FIXME this is an isolation test on the assumption that I'll change +# heap_inplace_update() to wait for the GRANT to commit or abort. If I don't +# do that, this could be a non-isolation test using dblink(). + +setup +{ + CREATE TABLE intra_grant_inplace (c int); +} + +teardown +{ + DROP TABLE intra_grant_inplace; +} + +session s1 +step b1 { BEGIN ISOLATION LEVEL READ COMMITTED; } +step g1 { GRANT SELECT ON intra_grant_inplace TO PUBLIC; } +step c1 { COMMIT; } + +session s2 +step s2 { SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; } +step a2 { ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); } + +permutation b1 g1 s2 a2 s2 c1 s2 Author: Noah Misch <[email protected]> Commit: Noah Misch <[email protected]> diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 14de815..8e51557 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -3730,6 +3730,15 @@ l2: id_has_external, &old_key_copied); + /* + * FIXME fail if updating pg_class without holding either (a) + * LOCKTAG_RELATION on this row's rel, in a mode conflicting w/ ShareLock, + * or (b) LOCKTAG_TUPLE. Fail if updating pg_database without holding + * either (a) LOCKTAG_OBJECT on this row's database OID, in FIXME mode, or + * (b) LOCKTAG_TUPLE. This may imply the executor taking the tuple locks + * during SQL UPDATE of those tables. + */ + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); @@ -5892,6 +5901,7 @@ heap_inplace_update(Relation relation, HeapTuple tuple) HeapTupleHeader htup; uint32 oldlen; uint32 newlen; + HeapTupleData oldtup; /* * For now, we don't allow parallel updates. Unlike a regular update, @@ -5904,6 +5914,8 @@ heap_inplace_update(Relation relation, HeapTuple tuple) (errcode(ERRCODE_INVALID_TRANSACTION_STATE), errmsg("cannot update tuples during a parallel operation"))); + /* FIXME fail unless holding LockTuple(relation, &tuple->t-self, AccessExclusiveLock */ + buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(&(tuple->t_self))); LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); page = (Page) BufferGetPage(buffer); @@ -5922,6 +5934,16 @@ heap_inplace_update(Relation relation, HeapTuple tuple) if (oldlen != newlen || htup->t_hoff != tuple->t_data->t_hoff) elog(ERROR, "wrong tuple length"); + /* evaluate whether updated */ + /* FIXME wait for a concurrent updater, in case it aborts */ + oldtup.t_tableOid = RelationGetRelid(relation); + oldtup.t_data = htup; + oldtup.t_len = ItemIdGetLength(lp); + oldtup.t_self = tuple->t_self; + if (TM_Ok != + HeapTupleSatisfiesUpdate(&oldtup, GetCurrentCommandId(false), buffer)) + elog(ERROR, "tuple concurrently updated"); + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 3ce6c09..dba3137 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -1853,7 +1853,7 @@ ExecGrant_Relation(InternalGrant *istmt) HeapTuple tuple; ListCell *cell_colprivs; - tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relOid)); + tuple = SearchSysCacheLocked1(relation, RELOID, ObjectIdGetDatum(relOid)); if (!HeapTupleIsValid(tuple)) elog(ERROR, "cache lookup failed for relation %u", relOid); pg_class_tuple = (Form_pg_class) GETSTRUCT(tuple); @@ -2190,7 +2190,7 @@ ExecGrant_common(InternalGrant *istmt, Oid classid, AclMode default_privs, Oid *oldmembers; Oid *newmembers; - tuple = SearchSysCache1(cacheid, ObjectIdGetDatum(objectid)); + tuple = SearchSysCacheLocked1(relation, cacheid, ObjectIdGetDatum(objectid)); if (!HeapTupleIsValid(tuple)) elog(ERROR, "cache lookup failed for %s %u", get_object_class_descr(classid), objectid); diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 143fae0..7c02380 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -2860,11 +2860,19 @@ index_update_stats(Relation rel, tuple = heap_getnext(pg_class_scan, ForwardScanDirection); tuple = heap_copytuple(tuple); table_endscan(pg_class_scan); + LockTuple(pg_class, &tuple->t_self, AccessExclusiveLock); + /* FIXME loop in case the pg_class tuple for pg_class moved */ } else { + HeapTuple cachetup; + /* normal case, use syscache */ - tuple = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(relid)); + cachetup = SearchSysCacheLocked1(pg_class, + RELOID, ObjectIdGetDatum(relid)); + tuple = heap_copytuple(cachetup); + if (HeapTupleIsValid(cachetup)) + ReleaseSysCache(cachetup); } if (!HeapTupleIsValid(tuple)) @@ -2933,6 +2941,7 @@ index_update_stats(Relation rel, CacheInvalidateRelcacheByTuple(tuple); } + UnlockTuple(pg_class, &tuple->t_self, AccessExclusiveLock); heap_freetuple(tuple); table_close(pg_class, RowExclusiveLock); diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c index 8dbda00..76be8b5 100644 --- a/src/backend/utils/cache/syscache.c +++ b/src/backend/utils/cache/syscache.c @@ -76,6 +76,7 @@ #include "catalog/pg_type.h" #include "catalog/pg_user_mapping.h" #include "lib/qunique.h" +#include "storage/lmgr.h" #include "utils/catcache.h" #include "utils/lsyscache.h" #include "utils/rel.h" @@ -827,6 +828,70 @@ SearchSysCache1(int cacheId, return SearchCatCache1(SysCache[cacheId], key1); } +/* + * Like SearchSysCache1, but a LOCKTAG_TUPLE heavyweight lock is held in + * AccessExclusiveMode on return. + * + * pg_class and pg_database are subject to both heap_inplace_update() and + * regular heap_update(). We must not lose the effects of any inplace update. + * That might arise by heap_inplace_update() mutating a tuple, the xmax of + * which then commits. Alternatively, it could arise by heap_inplace_update() + * mutating a tuple before an ongoing transaction's heap_update(), after the + * ongoing transaction fetches the old tuple to modify. We prevent both with + * locking as follows. All heap_inplace_update(pg_class) callers acquire two + * locks. First, they acquire LOCKTAG_RELATION in mode ShareLock, + * ShareUpdateExclusiveLock, or a mode with strictly more conflicts. Second, + * they acquire LOCKTAG_TUPLE. heap_update(pg_class) callers can either take + * any lock that conflicts with one of those two. Acquire one's choice of + * lock before fetching the tuple to be modified. FIXME write corresponding + * story for pg_database. + * + * This function bundles the tasks of retrieving a tuple and acquiring the + * LOCKTAG_TUPLE. Since much DDL opts to acquire LOCKTAG_RELATION, the + * LOCKTAG_TUPLE doesn't block such updaters of the returned tuple. Callers + * shall reject superseded tuples, such as by checking with + * HeapTupleSatisfiesUpdate() while holding an exclusive lock on the tuple's + * buffer. + * + * We opt to loop until the search finds the same tuple we've locked. FIXME + * This might not be strictly necessary, but it likely avoids some spurious + * errors. In the happy case, this takes two fetches, one to determine the + * tid to lock and another to confirm that the TID remains the latest tuple. + * + * FIXME consider dropping Relation arg and deducing applicable locktag fields + * from cacheId. + * + * FIXME this may belong in a different file, with available key counts other + * than 1, etc. + */ +HeapTuple +SearchSysCacheLocked1(Relation rel, + int cacheId, + Datum key1) +{ + ItemPointerData tid; + bool retry = false; + + for (;;) + { + HeapTuple tuple; + + tuple = SearchSysCache1(cacheId, key1); + if (!HeapTupleIsValid(tuple) || + (retry && ItemPointerEquals(&tid, &tuple->t_self))) + return tuple; + + if (retry) + UnlockTuple(rel, &tid, AccessExclusiveLock); + + tid = tuple->t_self; + ReleaseSysCache(tuple); + LockTuple(rel, &tid, AccessExclusiveLock); + retry = true; + } +} + + HeapTuple SearchSysCache2(int cacheId, Datum key1, Datum key2) diff --git a/src/include/utils/syscache.h b/src/include/utils/syscache.h index 5d47a65..aba5385 100644 --- a/src/include/utils/syscache.h +++ b/src/include/utils/syscache.h @@ -18,6 +18,7 @@ #include "access/attnum.h" #include "access/htup.h" +#include "utils/rel.h" /* we intentionally do not include utils/catcache.h here */ /* @@ -174,6 +175,10 @@ extern bool RelationInvalidatesSnapshotsOnly(Oid relid); extern bool RelationHasSysCache(Oid relid); extern bool RelationSupportsSysCache(Oid relid); +extern HeapTuple SearchSysCacheLocked1(Relation rel, + int cacheId, + Datum key1); + /* * The use of the macros below rather than direct calls to the corresponding * functions is encouraged, as it insulates the caller from changes in the diff --git a/src/test/isolation/expected/intra-grant-inplace.out b/src/test/isolation/expected/intra-grant-inplace.out new file mode 100644 index 0000000..a1eed4e --- /dev/null +++ b/src/test/isolation/expected/intra-grant-inplace.out @@ -0,0 +1,23 @@ +Parsed test spec with 2 sessions + +starting permutation: b1 g1 s2 a2 c1 s2 +step b1: BEGIN ISOLATION LEVEL READ COMMITTED; +step g1: GRANT SELECT ON intra_grant_inplace TO PUBLIC; +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + +step a2: ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); <waiting ...> +step c1: COMMIT; +step a2: <... completed> +ERROR: tuple concurrently updated +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule index b2be88e..fcc4ad4 100644 --- a/src/test/isolation/isolation_schedule +++ b/src/test/isolation/isolation_schedule @@ -86,6 +86,7 @@ test: alter-table-3 test: alter-table-4 test: create-trigger test: sequence-ddl +test: intra-grant-inplace test: async-notify test: vacuum-no-cleanup-lock test: timeouts diff --git a/src/test/isolation/specs/intra-grant-inplace.spec b/src/test/isolation/specs/intra-grant-inplace.spec new file mode 100644 index 0000000..85059ed --- /dev/null +++ b/src/test/isolation/specs/intra-grant-inplace.spec @@ -0,0 +1,25 @@ +# GRANT's lock is the catalog tuple xmax. GRANT doesn't acquire a heavyweight +# lock on the object undergoing an ACL change. In-place updates, such as +# relhasindex=true, need special code to cope. + +setup +{ + CREATE TABLE intra_grant_inplace (c int); +} + +teardown +{ + DROP TABLE intra_grant_inplace; +} + +session s1 +step b1 { BEGIN ISOLATION LEVEL READ COMMITTED; } +step g1 { GRANT SELECT ON intra_grant_inplace TO PUBLIC; } +step c1 { COMMIT; } + +session s2 +step s2 { SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; } +step a2 { ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); } + +permutation b1 g1 s2 a2 c1 s2 Attachments: [text/plain] intra-grant-inplace-via-ctid-v0.patch (7.7K, ../../[email protected]/2-intra-grant-inplace-via-ctid-v0.patch) download | inline diff: Author: Noah Misch <[email protected]> Commit: Noah Misch <[email protected]> diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 14de815..c0c33e9 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -2801,6 +2801,10 @@ l1: HeapTupleHeaderSetXmax(tp.t_data, new_xmax); HeapTupleHeaderSetCmax(tp.t_data, cid, iscombo); /* Make sure there is no forward chain link in t_ctid */ + /* + * FIXME this will overwrite any InplaceCanary ctid. Leave c_ctid + * unchanged? Accept that a rolled-back DROP could undo the protection? + */ tp.t_data->t_ctid = tp.t_self; /* Signal that this is actually a move into another partition */ @@ -3348,6 +3352,8 @@ l2: if (!HeapTupleSatisfiesVisibility(&oldtup, crosscheck, buffer)) { result = TM_Updated; + /* FiXME will InplaceCanary mechanism have race conditions w/ this + * or other t_ctid asserts in this file? */ Assert(!ItemPointerEquals(&oldtup.t_self, &oldtup.t_data->t_ctid)); } } @@ -3730,6 +3736,13 @@ l2: id_has_external, &old_key_copied); + /* FIXME missing anything important via the IsValid tests? */ + if (ItemPointerIsValid(&oldtup.t_data->t_ctid) && + ItemPointerIsValid(&newtup->t_data->t_ctid) && + ItemPointerGetOffsetNumber(&oldtup.t_data->t_ctid) == InplaceCanaryOffsetNumber && + !ItemPointerEquals(&oldtup.t_data->t_ctid, &newtup->t_data->t_ctid)) + elog(ERROR, "tuple concurrently updated"); + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); @@ -4747,6 +4760,11 @@ failed: * updated, we need to follow the update chain to lock the new versions of * the tuple as well. */ + /* + * FIXME this will overwrite any InplaceCanary ctid. Leave c_ctid + * unchanged? Accept that SELECT FOR UPDATE on the catalog table could + * undo the protection? + */ if (HEAP_XMAX_IS_LOCKED_ONLY(new_infomask)) tuple->t_data->t_ctid = *tid; @@ -5892,6 +5910,7 @@ heap_inplace_update(Relation relation, HeapTuple tuple) HeapTupleHeader htup; uint32 oldlen; uint32 newlen; + HeapTupleData oldtup; /* * For now, we don't allow parallel updates. Unlike a regular update, @@ -5922,12 +5941,29 @@ heap_inplace_update(Relation relation, HeapTuple tuple) if (oldlen != newlen || htup->t_hoff != tuple->t_data->t_hoff) elog(ERROR, "wrong tuple length"); + /* evaluate whether updated */ + /* FIXME wait for a concurrent updater, in case it aborts */ + oldtup.t_tableOid = RelationGetRelid(relation); + oldtup.t_data = htup; + oldtup.t_len = ItemIdGetLength(lp); + oldtup.t_self = tuple->t_self; + if (TM_Ok != + HeapTupleSatisfiesUpdate(&oldtup, GetCurrentCommandId(false), buffer)) + elog(ERROR, "tuple concurrently updated"); + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); memcpy((char *) htup + htup->t_hoff, (char *) tuple->t_data + tuple->t_data->t_hoff, newlen); + if (ItemPointerGetOffsetNumber(&htup->t_ctid) == + InplaceCanaryOffsetNumber) + BlockIdRetreat(&htup->t_ctid.ip_blkid); + else + ItemPointerSet(&htup->t_ctid, + MaxBlockNumber, + InplaceCanaryOffsetNumber); MarkBufferDirty(buffer); @@ -5945,6 +5981,7 @@ heap_inplace_update(Relation relation, HeapTuple tuple) XLogRegisterBuffer(0, buffer, REGBUF_STANDARD); XLogRegisterBufData(0, (char *) htup + htup->t_hoff, newlen); + /* don't log t_ctid: concurrent changes not happening in recovery */ /* inplace updates aren't decoded atm, don't log the origin */ recptr = XLogInsert(RM_HEAP_ID, XLOG_HEAP_INPLACE); diff --git a/src/include/storage/block.h b/src/include/storage/block.h index 31a036d..f8d9157 100644 --- a/src/include/storage/block.h +++ b/src/include/storage/block.h @@ -105,4 +105,14 @@ BlockIdGetBlockNumber(const BlockIdData *blockId) return (((BlockNumber) blockId->bi_hi) << 16) | ((BlockNumber) blockId->bi_lo); } +/* wraps on underflow, avoids InvalidBlockNumber */ +static inline void +BlockIdRetreat(BlockIdData *blockId) +{ + BlockNumber proposal = BlockIdGetBlockNumber(blockId) - 1; + if (proposal == InvalidBlockNumber) + proposal = MaxBlockNumber; + BlockIdSet(blockId, proposal); +} + #endif /* BLOCK_H */ diff --git a/src/include/storage/off.h b/src/include/storage/off.h index 3540308..8ff776a 100644 --- a/src/include/storage/off.h +++ b/src/include/storage/off.h @@ -27,6 +27,19 @@ typedef uint16 OffsetNumber; #define FirstOffsetNumber ((OffsetNumber) 1) #define MaxOffsetNumber ((OffsetNumber) (BLCKSZ / sizeof(ItemIdData))) +/* + * If a t_ctid contains InplaceCanaryOffsetNumber, it's a special ctid + * signifying that the tuple received a heap_inplace_update(). This is + * expected only in system catalogs, though extensions can use it elsewhere. + * (Offsets greater than MaxOffsetNumber are otherwise unattested.) The + * BlockNumber acts as a counter to distinguish multiple inplace updates. It + * starts at MaxBlockNumber, counts down to 0, and wraps back to + * MaxBlockNumber after 4B inplace updates. (Counting upward or other ways + * would be fine, but this choice maximizes these special TIDs looking + * different from regular TIDs.) + */ +#define InplaceCanaryOffsetNumber (InvalidOffsetNumber - 1) + /* ---------------- * support macros * ---------------- diff --git a/src/test/isolation/expected/intra-grant-inplace.out b/src/test/isolation/expected/intra-grant-inplace.out new file mode 100644 index 0000000..e7404e8 --- /dev/null +++ b/src/test/isolation/expected/intra-grant-inplace.out @@ -0,0 +1,29 @@ +Parsed test spec with 2 sessions + +starting permutation: b1 g1 s2 a2 s2 c1 s2 +step b1: BEGIN ISOLATION LEVEL READ COMMITTED; +step g1: GRANT SELECT ON intra_grant_inplace TO PUBLIC; +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + +step a2: ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); +ERROR: tuple concurrently updated +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + +step c1: COMMIT; +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule index b2be88e..fcc4ad4 100644 --- a/src/test/isolation/isolation_schedule +++ b/src/test/isolation/isolation_schedule @@ -86,6 +86,7 @@ test: alter-table-3 test: alter-table-4 test: create-trigger test: sequence-ddl +test: intra-grant-inplace test: async-notify test: vacuum-no-cleanup-lock test: timeouts diff --git a/src/test/isolation/specs/intra-grant-inplace.spec b/src/test/isolation/specs/intra-grant-inplace.spec new file mode 100644 index 0000000..b5720c5 --- /dev/null +++ b/src/test/isolation/specs/intra-grant-inplace.spec @@ -0,0 +1,29 @@ +# GRANT's lock is the catalog tuple xmax. GRANT doesn't acquire a heavyweight +# lock on the object undergoing an ACL change. In-place updates, such as +# relhasindex=true, need special code to cope. +# +# FIXME this is an isolation test on the assumption that I'll change +# heap_inplace_update() to wait for the GRANT to commit or abort. If I don't +# do that, this could be a non-isolation test using dblink(). + +setup +{ + CREATE TABLE intra_grant_inplace (c int); +} + +teardown +{ + DROP TABLE intra_grant_inplace; +} + +session s1 +step b1 { BEGIN ISOLATION LEVEL READ COMMITTED; } +step g1 { GRANT SELECT ON intra_grant_inplace TO PUBLIC; } +step c1 { COMMIT; } + +session s2 +step s2 { SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; } +step a2 { ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); } + +permutation b1 g1 s2 a2 s2 c1 s2 [text/plain] intra-grant-inplace-via-tuplock-v0.patch (10.2K, ../../[email protected]/3-intra-grant-inplace-via-tuplock-v0.patch) download | inline diff: Author: Noah Misch <[email protected]> Commit: Noah Misch <[email protected]> diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 14de815..8e51557 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -3730,6 +3730,15 @@ l2: id_has_external, &old_key_copied); + /* + * FIXME fail if updating pg_class without holding either (a) + * LOCKTAG_RELATION on this row's rel, in a mode conflicting w/ ShareLock, + * or (b) LOCKTAG_TUPLE. Fail if updating pg_database without holding + * either (a) LOCKTAG_OBJECT on this row's database OID, in FIXME mode, or + * (b) LOCKTAG_TUPLE. This may imply the executor taking the tuple locks + * during SQL UPDATE of those tables. + */ + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); @@ -5892,6 +5901,7 @@ heap_inplace_update(Relation relation, HeapTuple tuple) HeapTupleHeader htup; uint32 oldlen; uint32 newlen; + HeapTupleData oldtup; /* * For now, we don't allow parallel updates. Unlike a regular update, @@ -5904,6 +5914,8 @@ heap_inplace_update(Relation relation, HeapTuple tuple) (errcode(ERRCODE_INVALID_TRANSACTION_STATE), errmsg("cannot update tuples during a parallel operation"))); + /* FIXME fail unless holding LockTuple(relation, &tuple->t-self, AccessExclusiveLock */ + buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(&(tuple->t_self))); LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); page = (Page) BufferGetPage(buffer); @@ -5922,6 +5934,16 @@ heap_inplace_update(Relation relation, HeapTuple tuple) if (oldlen != newlen || htup->t_hoff != tuple->t_data->t_hoff) elog(ERROR, "wrong tuple length"); + /* evaluate whether updated */ + /* FIXME wait for a concurrent updater, in case it aborts */ + oldtup.t_tableOid = RelationGetRelid(relation); + oldtup.t_data = htup; + oldtup.t_len = ItemIdGetLength(lp); + oldtup.t_self = tuple->t_self; + if (TM_Ok != + HeapTupleSatisfiesUpdate(&oldtup, GetCurrentCommandId(false), buffer)) + elog(ERROR, "tuple concurrently updated"); + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 3ce6c09..dba3137 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -1853,7 +1853,7 @@ ExecGrant_Relation(InternalGrant *istmt) HeapTuple tuple; ListCell *cell_colprivs; - tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relOid)); + tuple = SearchSysCacheLocked1(relation, RELOID, ObjectIdGetDatum(relOid)); if (!HeapTupleIsValid(tuple)) elog(ERROR, "cache lookup failed for relation %u", relOid); pg_class_tuple = (Form_pg_class) GETSTRUCT(tuple); @@ -2190,7 +2190,7 @@ ExecGrant_common(InternalGrant *istmt, Oid classid, AclMode default_privs, Oid *oldmembers; Oid *newmembers; - tuple = SearchSysCache1(cacheid, ObjectIdGetDatum(objectid)); + tuple = SearchSysCacheLocked1(relation, cacheid, ObjectIdGetDatum(objectid)); if (!HeapTupleIsValid(tuple)) elog(ERROR, "cache lookup failed for %s %u", get_object_class_descr(classid), objectid); diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 143fae0..7c02380 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -2860,11 +2860,19 @@ index_update_stats(Relation rel, tuple = heap_getnext(pg_class_scan, ForwardScanDirection); tuple = heap_copytuple(tuple); table_endscan(pg_class_scan); + LockTuple(pg_class, &tuple->t_self, AccessExclusiveLock); + /* FIXME loop in case the pg_class tuple for pg_class moved */ } else { + HeapTuple cachetup; + /* normal case, use syscache */ - tuple = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(relid)); + cachetup = SearchSysCacheLocked1(pg_class, + RELOID, ObjectIdGetDatum(relid)); + tuple = heap_copytuple(cachetup); + if (HeapTupleIsValid(cachetup)) + ReleaseSysCache(cachetup); } if (!HeapTupleIsValid(tuple)) @@ -2933,6 +2941,7 @@ index_update_stats(Relation rel, CacheInvalidateRelcacheByTuple(tuple); } + UnlockTuple(pg_class, &tuple->t_self, AccessExclusiveLock); heap_freetuple(tuple); table_close(pg_class, RowExclusiveLock); diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c index 8dbda00..76be8b5 100644 --- a/src/backend/utils/cache/syscache.c +++ b/src/backend/utils/cache/syscache.c @@ -76,6 +76,7 @@ #include "catalog/pg_type.h" #include "catalog/pg_user_mapping.h" #include "lib/qunique.h" +#include "storage/lmgr.h" #include "utils/catcache.h" #include "utils/lsyscache.h" #include "utils/rel.h" @@ -827,6 +828,70 @@ SearchSysCache1(int cacheId, return SearchCatCache1(SysCache[cacheId], key1); } +/* + * Like SearchSysCache1, but a LOCKTAG_TUPLE heavyweight lock is held in + * AccessExclusiveMode on return. + * + * pg_class and pg_database are subject to both heap_inplace_update() and + * regular heap_update(). We must not lose the effects of any inplace update. + * That might arise by heap_inplace_update() mutating a tuple, the xmax of + * which then commits. Alternatively, it could arise by heap_inplace_update() + * mutating a tuple before an ongoing transaction's heap_update(), after the + * ongoing transaction fetches the old tuple to modify. We prevent both with + * locking as follows. All heap_inplace_update(pg_class) callers acquire two + * locks. First, they acquire LOCKTAG_RELATION in mode ShareLock, + * ShareUpdateExclusiveLock, or a mode with strictly more conflicts. Second, + * they acquire LOCKTAG_TUPLE. heap_update(pg_class) callers can either take + * any lock that conflicts with one of those two. Acquire one's choice of + * lock before fetching the tuple to be modified. FIXME write corresponding + * story for pg_database. + * + * This function bundles the tasks of retrieving a tuple and acquiring the + * LOCKTAG_TUPLE. Since much DDL opts to acquire LOCKTAG_RELATION, the + * LOCKTAG_TUPLE doesn't block such updaters of the returned tuple. Callers + * shall reject superseded tuples, such as by checking with + * HeapTupleSatisfiesUpdate() while holding an exclusive lock on the tuple's + * buffer. + * + * We opt to loop until the search finds the same tuple we've locked. FIXME + * This might not be strictly necessary, but it likely avoids some spurious + * errors. In the happy case, this takes two fetches, one to determine the + * tid to lock and another to confirm that the TID remains the latest tuple. + * + * FIXME consider dropping Relation arg and deducing applicable locktag fields + * from cacheId. + * + * FIXME this may belong in a different file, with available key counts other + * than 1, etc. + */ +HeapTuple +SearchSysCacheLocked1(Relation rel, + int cacheId, + Datum key1) +{ + ItemPointerData tid; + bool retry = false; + + for (;;) + { + HeapTuple tuple; + + tuple = SearchSysCache1(cacheId, key1); + if (!HeapTupleIsValid(tuple) || + (retry && ItemPointerEquals(&tid, &tuple->t_self))) + return tuple; + + if (retry) + UnlockTuple(rel, &tid, AccessExclusiveLock); + + tid = tuple->t_self; + ReleaseSysCache(tuple); + LockTuple(rel, &tid, AccessExclusiveLock); + retry = true; + } +} + + HeapTuple SearchSysCache2(int cacheId, Datum key1, Datum key2) diff --git a/src/include/utils/syscache.h b/src/include/utils/syscache.h index 5d47a65..aba5385 100644 --- a/src/include/utils/syscache.h +++ b/src/include/utils/syscache.h @@ -18,6 +18,7 @@ #include "access/attnum.h" #include "access/htup.h" +#include "utils/rel.h" /* we intentionally do not include utils/catcache.h here */ /* @@ -174,6 +175,10 @@ extern bool RelationInvalidatesSnapshotsOnly(Oid relid); extern bool RelationHasSysCache(Oid relid); extern bool RelationSupportsSysCache(Oid relid); +extern HeapTuple SearchSysCacheLocked1(Relation rel, + int cacheId, + Datum key1); + /* * The use of the macros below rather than direct calls to the corresponding * functions is encouraged, as it insulates the caller from changes in the diff --git a/src/test/isolation/expected/intra-grant-inplace.out b/src/test/isolation/expected/intra-grant-inplace.out new file mode 100644 index 0000000..a1eed4e --- /dev/null +++ b/src/test/isolation/expected/intra-grant-inplace.out @@ -0,0 +1,23 @@ +Parsed test spec with 2 sessions + +starting permutation: b1 g1 s2 a2 c1 s2 +step b1: BEGIN ISOLATION LEVEL READ COMMITTED; +step g1: GRANT SELECT ON intra_grant_inplace TO PUBLIC; +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + +step a2: ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); <waiting ...> +step c1: COMMIT; +step a2: <... completed> +ERROR: tuple concurrently updated +step s2: SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; +relhasindex +----------- +f +(1 row) + diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule index b2be88e..fcc4ad4 100644 --- a/src/test/isolation/isolation_schedule +++ b/src/test/isolation/isolation_schedule @@ -86,6 +86,7 @@ test: alter-table-3 test: alter-table-4 test: create-trigger test: sequence-ddl +test: intra-grant-inplace test: async-notify test: vacuum-no-cleanup-lock test: timeouts diff --git a/src/test/isolation/specs/intra-grant-inplace.spec b/src/test/isolation/specs/intra-grant-inplace.spec new file mode 100644 index 0000000..85059ed --- /dev/null +++ b/src/test/isolation/specs/intra-grant-inplace.spec @@ -0,0 +1,25 @@ +# GRANT's lock is the catalog tuple xmax. GRANT doesn't acquire a heavyweight +# lock on the object undergoing an ACL change. In-place updates, such as +# relhasindex=true, need special code to cope. + +setup +{ + CREATE TABLE intra_grant_inplace (c int); +} + +teardown +{ + DROP TABLE intra_grant_inplace; +} + +session s1 +step b1 { BEGIN ISOLATION LEVEL READ COMMITTED; } +step g1 { GRANT SELECT ON intra_grant_inplace TO PUBLIC; } +step c1 { COMMIT; } + +session s2 +step s2 { SELECT relhasindex FROM pg_class + WHERE oid = 'intra_grant_inplace'::regclass; } +step a2 { ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); } + +permutation b1 g1 s2 a2 c1 s2 ^ permalink raw reply [nested|flat] 103+ messages in thread
end of thread, other threads:[~2023-11-02 03:09 UTC | newest] Thread overview: 103+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v3 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v2 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-01-26 09:43 [PATCH v4 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-13 05:49 [PATCH v5 3/5] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Japin Li <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v8 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2021-02-16 01:50 [PATCH v7 2/4] Test ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION Bharath Rupireddy <[email protected]> 2023-10-25 10:39 race condition in pg_class Smolkin Grigory <[email protected]> 2023-10-25 12:57 ` Re: race condition in pg_class Andrey M. Borodin <[email protected]> 2023-10-25 18:06 ` Re: race condition in pg_class Tom Lane <[email protected]> 2023-10-26 09:52 ` Re: race condition in pg_class Smolkin Grigory <[email protected]> 2023-10-27 04:44 ` Re: race condition in pg_class Noah Misch <[email protected]> 2023-10-27 10:03 ` Re: race condition in pg_class Smolkin Grigory <[email protected]> 2023-10-27 18:48 ` Re: race condition in pg_class Noah Misch <[email protected]> 2023-10-27 19:32 ` Re: race condition in pg_class Tom Lane <[email protected]> 2023-10-27 21:49 ` Re: race condition in pg_class Noah Misch <[email protected]> 2023-10-27 22:40 ` Re: race condition in pg_class Tom Lane <[email protected]> 2023-10-27 23:26 ` Re: race condition in pg_class Noah Misch <[email protected]> 2023-11-02 03:09 ` Re: race condition in pg_class Noah Misch <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox