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")));
}
}
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;
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;