Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb895792

Browse files
committed
Fix segfault in ALTER PUBLICATION/SUBSCRIPTION RENAME
From: Masahiko Sawada <sawada.mshk@gmail.com>Reported-by: Fujii Masao <masao.fujii@gmail.com>
1 parent3830539 commitb895792

File tree

5 files changed

+30
-2
lines changed

5 files changed

+30
-2
lines changed

‎src/backend/catalog/objectaddress.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ static const ObjectPropertyType ObjectProperty[] =
464464
InvalidAttrNumber,
465465
Anum_pg_publication_pubowner,
466466
InvalidAttrNumber,
467-
-1,
467+
ACL_KIND_PUBLICATION,
468468
true
469469
},
470470
{
@@ -476,7 +476,7 @@ static const ObjectPropertyType ObjectProperty[] =
476476
InvalidAttrNumber,
477477
Anum_pg_subscription_subowner,
478478
InvalidAttrNumber,
479-
-1,
479+
ACL_KIND_SUBSCRIPTION,
480480
true
481481
}
482482
};

‎src/test/regress/expected/publication.out

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
-- PUBLICATION
33
--
44
CREATE ROLE regress_publication_user LOGIN SUPERUSER;
5+
CREATE ROLE regress_publication_user_dummy LOGIN NOSUPERUSER;
56
SET SESSION AUTHORIZATION 'regress_publication_user';
67
CREATE PUBLICATION testpub_default;
78
CREATE PUBLICATION testpib_ins_trunct WITH (nopublish delete, nopublish update);
@@ -148,6 +149,11 @@ DROP TABLE testpub_tbl1;
148149
t | t | t
149150
(1 row)
150151

152+
-- faile - must be owner of publication
153+
SET ROLE regress_publication_user_dummy;
154+
ALTER PUBLICATION testpub_default RENAME TO testpub_dummy;
155+
ERROR: must be owner of publication testpub_default
156+
RESET ROLE;
151157
ALTER PUBLICATION testpub_default RENAME TO testpub_foo;
152158
\dRp testpub_foo
153159
List of publications
@@ -163,3 +169,4 @@ DROP SCHEMA pub_test CASCADE;
163169
NOTICE: drop cascades to table pub_test.testpub_nopk
164170
RESET SESSION AUTHORIZATION;
165171
DROP ROLE regress_publication_user;
172+
DROP ROLE regress_publication_user_dummy;

‎src/test/regress/expected/subscription.out

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
-- SUBSCRIPTION
33
--
44
CREATE ROLE regress_subscription_user LOGIN SUPERUSER;
5+
CREATE ROLE regress_subscription_user_dummy LOGIN NOSUPERUSER;
56
SET SESSION AUTHORIZATION 'regress_subscription_user';
67
-- fail - no publications
78
CREATE SUBSCRIPTION testsub CONNECTION 'foo';
@@ -66,6 +67,11 @@ ALTER SUBSCRIPTION testsub DISABLE;
6667
(1 row)
6768

6869
COMMIT;
70+
-- fail - must be owner of subscription
71+
SET ROLE regress_subscription_user_dummy;
72+
ALTER SUBSCRIPTION testsub RENAME TO testsub_dummy;
73+
ERROR: must be owner of subscription testsub
74+
RESET ROLE;
6975
ALTER SUBSCRIPTION testsub RENAME TO testsub_foo;
7076
\dRs
7177
List of subscriptions
@@ -84,3 +90,4 @@ DROP SUBSCRIPTION testsub_foo NODROP SLOT;
8490
COMMIT;
8591
RESET SESSION AUTHORIZATION;
8692
DROP ROLE regress_subscription_user;
93+
DROP ROLE regress_subscription_user_dummy;

‎src/test/regress/sql/publication.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
-- PUBLICATION
33
--
44
CREATE ROLE regress_publication_user LOGIN SUPERUSER;
5+
CREATE ROLE regress_publication_user_dummy LOGIN NOSUPERUSER;
56
SET SESSION AUTHORIZATION'regress_publication_user';
67

78
CREATE PUBLICATION testpub_default;
@@ -73,6 +74,11 @@ DROP TABLE testpub_tbl1;
7374

7475
\dRp+ testpub_default
7576

77+
-- faile - must be owner of publication
78+
SET ROLE regress_publication_user_dummy;
79+
ALTER PUBLICATION testpub_default RENAME TO testpub_dummy;
80+
RESET ROLE;
81+
7682
ALTER PUBLICATION testpub_default RENAME TO testpub_foo;
7783

7884
\dRp testpub_foo
@@ -85,3 +91,4 @@ DROP SCHEMA pub_test CASCADE;
8591

8692
RESET SESSION AUTHORIZATION;
8793
DROP ROLE regress_publication_user;
94+
DROP ROLE regress_publication_user_dummy;

‎src/test/regress/sql/subscription.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
--
44

55
CREATE ROLE regress_subscription_user LOGIN SUPERUSER;
6+
CREATE ROLE regress_subscription_user_dummy LOGIN NOSUPERUSER;
67
SET SESSION AUTHORIZATION'regress_subscription_user';
78

89
-- fail - no publications
@@ -43,6 +44,11 @@ ALTER SUBSCRIPTION testsub DISABLE;
4344

4445
COMMIT;
4546

47+
-- fail - must be owner of subscription
48+
SET ROLE regress_subscription_user_dummy;
49+
ALTER SUBSCRIPTION testsub RENAME TO testsub_dummy;
50+
RESET ROLE;
51+
4652
ALTER SUBSCRIPTION testsub RENAME TO testsub_foo;
4753

4854
\dRs
@@ -58,3 +64,4 @@ COMMIT;
5864

5965
RESET SESSION AUTHORIZATION;
6066
DROP ROLE regress_subscription_user;
67+
DROP ROLE regress_subscription_user_dummy;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp