mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Improve generated_stored test
The test table names gtest11s and gtest12s were way originally chosen to signify "stored", when the idea was to have virtual columns in the same test file. This is no longer the idea, so this naming is irrelevant. (The upcoming feature of virtual generated columns will have a test file that is initially a copy of generated_stored.sql, and this random difference will be even more annoying then.) Clean this up by dropping the suffix. Discussion: https://www.postgresql.org/message-id/flat/a368248e-69e4-40be-9c07-6c3b5880b0a6@eisentraut.org
This commit is contained in:
parent
fb9f955025
commit
44b61efb79
@ -534,18 +534,18 @@ ALTER TABLE gtest10a DROP COLUMN b;
|
|||||||
INSERT INTO gtest10a (a) VALUES (1);
|
INSERT INTO gtest10a (a) VALUES (1);
|
||||||
-- privileges
|
-- privileges
|
||||||
CREATE USER regress_user11;
|
CREATE USER regress_user11;
|
||||||
CREATE TABLE gtest11s (a int PRIMARY KEY, b int, c int GENERATED ALWAYS AS (b * 2) STORED);
|
CREATE TABLE gtest11 (a int PRIMARY KEY, b int, c int GENERATED ALWAYS AS (b * 2) STORED);
|
||||||
INSERT INTO gtest11s VALUES (1, 10), (2, 20);
|
INSERT INTO gtest11 VALUES (1, 10), (2, 20);
|
||||||
GRANT SELECT (a, c) ON gtest11s TO regress_user11;
|
GRANT SELECT (a, c) ON gtest11 TO regress_user11;
|
||||||
CREATE FUNCTION gf1(a int) RETURNS int AS $$ SELECT a * 3 $$ IMMUTABLE LANGUAGE SQL;
|
CREATE FUNCTION gf1(a int) RETURNS int AS $$ SELECT a * 3 $$ IMMUTABLE LANGUAGE SQL;
|
||||||
REVOKE ALL ON FUNCTION gf1(int) FROM PUBLIC;
|
REVOKE ALL ON FUNCTION gf1(int) FROM PUBLIC;
|
||||||
CREATE TABLE gtest12s (a int PRIMARY KEY, b int, c int GENERATED ALWAYS AS (gf1(b)) STORED);
|
CREATE TABLE gtest12 (a int PRIMARY KEY, b int, c int GENERATED ALWAYS AS (gf1(b)) STORED);
|
||||||
INSERT INTO gtest12s VALUES (1, 10), (2, 20);
|
INSERT INTO gtest12 VALUES (1, 10), (2, 20);
|
||||||
GRANT SELECT (a, c) ON gtest12s TO regress_user11;
|
GRANT SELECT (a, c) ON gtest12 TO regress_user11;
|
||||||
SET ROLE regress_user11;
|
SET ROLE regress_user11;
|
||||||
SELECT a, b FROM gtest11s; -- not allowed
|
SELECT a, b FROM gtest11; -- not allowed
|
||||||
ERROR: permission denied for table gtest11s
|
ERROR: permission denied for table gtest11
|
||||||
SELECT a, c FROM gtest11s; -- allowed
|
SELECT a, c FROM gtest11; -- allowed
|
||||||
a | c
|
a | c
|
||||||
---+----
|
---+----
|
||||||
1 | 20
|
1 | 20
|
||||||
@ -554,7 +554,7 @@ SELECT a, c FROM gtest11s; -- allowed
|
|||||||
|
|
||||||
SELECT gf1(10); -- not allowed
|
SELECT gf1(10); -- not allowed
|
||||||
ERROR: permission denied for function gf1
|
ERROR: permission denied for function gf1
|
||||||
SELECT a, c FROM gtest12s; -- allowed
|
SELECT a, c FROM gtest12; -- allowed
|
||||||
a | c
|
a | c
|
||||||
---+----
|
---+----
|
||||||
1 | 30
|
1 | 30
|
||||||
@ -564,9 +564,9 @@ SELECT a, c FROM gtest12s; -- allowed
|
|||||||
RESET ROLE;
|
RESET ROLE;
|
||||||
DROP FUNCTION gf1(int); -- fail
|
DROP FUNCTION gf1(int); -- fail
|
||||||
ERROR: cannot drop function gf1(integer) because other objects depend on it
|
ERROR: cannot drop function gf1(integer) because other objects depend on it
|
||||||
DETAIL: column c of table gtest12s depends on function gf1(integer)
|
DETAIL: column c of table gtest12 depends on function gf1(integer)
|
||||||
HINT: Use DROP ... CASCADE to drop the dependent objects too.
|
HINT: Use DROP ... CASCADE to drop the dependent objects too.
|
||||||
DROP TABLE gtest11s, gtest12s;
|
DROP TABLE gtest11, gtest12;
|
||||||
DROP FUNCTION gf1(int);
|
DROP FUNCTION gf1(int);
|
||||||
DROP USER regress_user11;
|
DROP USER regress_user11;
|
||||||
-- check constraints
|
-- check constraints
|
||||||
|
@ -265,26 +265,26 @@ INSERT INTO gtest10a (a) VALUES (1);
|
|||||||
-- privileges
|
-- privileges
|
||||||
CREATE USER regress_user11;
|
CREATE USER regress_user11;
|
||||||
|
|
||||||
CREATE TABLE gtest11s (a int PRIMARY KEY, b int, c int GENERATED ALWAYS AS (b * 2) STORED);
|
CREATE TABLE gtest11 (a int PRIMARY KEY, b int, c int GENERATED ALWAYS AS (b * 2) STORED);
|
||||||
INSERT INTO gtest11s VALUES (1, 10), (2, 20);
|
INSERT INTO gtest11 VALUES (1, 10), (2, 20);
|
||||||
GRANT SELECT (a, c) ON gtest11s TO regress_user11;
|
GRANT SELECT (a, c) ON gtest11 TO regress_user11;
|
||||||
|
|
||||||
CREATE FUNCTION gf1(a int) RETURNS int AS $$ SELECT a * 3 $$ IMMUTABLE LANGUAGE SQL;
|
CREATE FUNCTION gf1(a int) RETURNS int AS $$ SELECT a * 3 $$ IMMUTABLE LANGUAGE SQL;
|
||||||
REVOKE ALL ON FUNCTION gf1(int) FROM PUBLIC;
|
REVOKE ALL ON FUNCTION gf1(int) FROM PUBLIC;
|
||||||
|
|
||||||
CREATE TABLE gtest12s (a int PRIMARY KEY, b int, c int GENERATED ALWAYS AS (gf1(b)) STORED);
|
CREATE TABLE gtest12 (a int PRIMARY KEY, b int, c int GENERATED ALWAYS AS (gf1(b)) STORED);
|
||||||
INSERT INTO gtest12s VALUES (1, 10), (2, 20);
|
INSERT INTO gtest12 VALUES (1, 10), (2, 20);
|
||||||
GRANT SELECT (a, c) ON gtest12s TO regress_user11;
|
GRANT SELECT (a, c) ON gtest12 TO regress_user11;
|
||||||
|
|
||||||
SET ROLE regress_user11;
|
SET ROLE regress_user11;
|
||||||
SELECT a, b FROM gtest11s; -- not allowed
|
SELECT a, b FROM gtest11; -- not allowed
|
||||||
SELECT a, c FROM gtest11s; -- allowed
|
SELECT a, c FROM gtest11; -- allowed
|
||||||
SELECT gf1(10); -- not allowed
|
SELECT gf1(10); -- not allowed
|
||||||
SELECT a, c FROM gtest12s; -- allowed
|
SELECT a, c FROM gtest12; -- allowed
|
||||||
RESET ROLE;
|
RESET ROLE;
|
||||||
|
|
||||||
DROP FUNCTION gf1(int); -- fail
|
DROP FUNCTION gf1(int); -- fail
|
||||||
DROP TABLE gtest11s, gtest12s;
|
DROP TABLE gtest11, gtest12;
|
||||||
DROP FUNCTION gf1(int);
|
DROP FUNCTION gf1(int);
|
||||||
DROP USER regress_user11;
|
DROP USER regress_user11;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user