mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
Unbreak unlogged tables.
I broke this in commit 5da79169d3
, which
was obviously insufficiently well tested. Add some regression tests
in the hope of making future slip-ups more likely to be noticed.
This commit is contained in:
parent
43aa40e155
commit
6f1be5a67a
@ -506,9 +506,10 @@ RangeVarAdjustRelationPersistence(RangeVar *newRelation, Oid nspid)
|
||||
errmsg("cannot create relations in temporary schemas of other sessions")));
|
||||
break;
|
||||
default:
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_TABLE_DEFINITION),
|
||||
errmsg("only temporary relations may be created in temporary schemas")));
|
||||
if (isAnyTempNamespace(nspid))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_TABLE_DEFINITION),
|
||||
errmsg("only temporary relations may be created in temporary schemas")));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -204,3 +204,14 @@ CREATE TABLE IF NOT EXISTS test_tsvector(
|
||||
t text
|
||||
);
|
||||
NOTICE: relation "test_tsvector" already exists, skipping
|
||||
CREATE UNLOGGED TABLE unlogged1 (a int); -- OK
|
||||
INSERT INTO unlogged1 VALUES (42);
|
||||
CREATE UNLOGGED TABLE public.unlogged2 (a int); -- also OK
|
||||
CREATE UNLOGGED TABLE pg_temp.unlogged3 (a int); -- not OK
|
||||
ERROR: only temporary relations may be created in temporary schemas
|
||||
CREATE TABLE pg_temp.implicity_temp (a int); -- OK
|
||||
CREATE TEMP TABLE explicitly_temp (a int); -- also OK
|
||||
CREATE TEMP TABLE pg_temp.doubly_temp (a int); -- also OK
|
||||
CREATE TEMP TABLE public.temp_to_perm (a int); -- not OK
|
||||
ERROR: cannot create temporary relation in non-temporary schema
|
||||
DROP TABLE unlogged1, public.unlogged2;
|
||||
|
@ -240,3 +240,13 @@ CREATE TABLE IF NOT EXISTS test_tsvector(
|
||||
CREATE TABLE IF NOT EXISTS test_tsvector(
|
||||
t text
|
||||
);
|
||||
|
||||
CREATE UNLOGGED TABLE unlogged1 (a int); -- OK
|
||||
INSERT INTO unlogged1 VALUES (42);
|
||||
CREATE UNLOGGED TABLE public.unlogged2 (a int); -- also OK
|
||||
CREATE UNLOGGED TABLE pg_temp.unlogged3 (a int); -- not OK
|
||||
CREATE TABLE pg_temp.implicity_temp (a int); -- OK
|
||||
CREATE TEMP TABLE explicitly_temp (a int); -- also OK
|
||||
CREATE TEMP TABLE pg_temp.doubly_temp (a int); -- also OK
|
||||
CREATE TEMP TABLE public.temp_to_perm (a int); -- not OK
|
||||
DROP TABLE unlogged1, public.unlogged2;
|
||||
|
Loading…
Reference in New Issue
Block a user