@@ -212,6 +212,76 @@ CREATE SCHEMA regress_schema_5 AUTHORIZATION CURRENT_ROLE
212212 regress_schema_5 | coll | libc | C | C | | | yes
213213(1 row)
214214
215+ -----CREATE SCHEMA CREATE TYPE
216+ --fail. cannot CREATE TYPE to other schema
217+ CREATE SCHEMA regress_schema_6 CREATE TYPE public.ss AS (a int);
218+ ERROR: CREATE specifies a schema (public) different from the one being created (regress_schema_6)
219+ LINE 1: CREATE SCHEMA regress_schema_6 CREATE TYPE public.ss AS (a i...
220+ ^
221+ CREATE SCHEMA regress_schema_6 CREATE TYPE public.ss;
222+ ERROR: CREATE specifies a schema (regress_schema_6) different from the one being created (public)
223+ CREATE SCHEMA regress_schema_6 CREATE TYPE public.rainbow AS ENUM ('red', 'orange');
224+ ERROR: CREATE specifies a schema (regress_schema_6) different from the one being created (public)
225+ CREATE SCHEMA regress_schema_6 CREATE TYPE public.floatrange AS RANGE (subtype = float8, subtype_diff = float8mi);
226+ ERROR: CREATE specifies a schema (regress_schema_6) different from the one being created (public)
227+ --fail. improper qualified name
228+ CREATE SCHEMA regress_schema_6 AUTHORIZATION CURRENT_ROLE
229+ CREATE TYPE postgres.public.floatrange AS RANGE (subtype = float8, subtype_diff = float8mi);
230+ ERROR: cross-database references are not implemented: postgres.public.floatrange
231+ --all the following 4 should error, because we execute subcommands in order
232+ CREATE SCHEMA regress_schema_6 CREATE TABLE tts(a ss) CREATE TYPE ss;
233+ ERROR: type "ss" does not exist
234+ LINE 1: CREATE SCHEMA regress_schema_6 CREATE TABLE tts(a ss) CREATE...
235+ ^
236+ CREATE SCHEMA regress_schema_6 CREATE TABLE tts(a ss) CREATE TYPE ss AS (a int);
237+ ERROR: type "ss" does not exist
238+ LINE 1: CREATE SCHEMA regress_schema_6 CREATE TABLE tts(a ss) CREATE...
239+ ^
240+ CREATE SCHEMA regress_schema_6 CREATE TABLE tts(a rainbow) CREATE TYPE rainbow AS ENUM ('red', 'orange');
241+ ERROR: type "rainbow" does not exist
242+ LINE 1: CREATE SCHEMA regress_schema_6 CREATE TABLE tts(a rainbow) C...
243+ ^
244+ CREATE SCHEMA regress_schema_6
245+ CREATE TABLE tts(a floatrange)
246+ CREATE TYPE floatrange AS RANGE (subtype = float8, subtype_diff = float8mi);
247+ ERROR: type "floatrange" does not exist
248+ LINE 2: CREATE TABLE tts(a floatrange)
249+ ^
250+ --ok
251+ CREATE SCHEMA regress_schema_6
252+ CREATE TYPE floatrange AS RANGE (subtype = float8, subtype_diff = float8mi)
253+ CREATE TYPE ss AS (a int)
254+ CREATE TYPE sss
255+ CREATE TYPE rainbow AS ENUM ('red', 'orange');
256+ \dT regress_schema_6.*
257+ List of data types
258+ Schema | Name | Description
259+ ------------------+----------------------------------+-------------
260+ regress_schema_6 | regress_schema_6.floatmultirange |
261+ regress_schema_6 | regress_schema_6.floatrange |
262+ regress_schema_6 | regress_schema_6.rainbow |
263+ regress_schema_6 | regress_schema_6.ss |
264+ regress_schema_6 | regress_schema_6.sss |
265+ (5 rows)
266+
267+ --schema qualified, ok
268+ CREATE SCHEMA regress_schema_7
269+ CREATE TYPE regress_schema_7.floatrange AS RANGE (subtype = float8, subtype_diff = float8mi)
270+ CREATE TYPE regress_schema_7.ss AS (a int)
271+ CREATE TYPE regress_schema_7.sss
272+ CREATE TYPE regress_schema_7.rainbow AS ENUM ('red', 'orange')
273+ CREATE TABLE t(a floatrange, b ss, c rainbow);
274+ \dT regress_schema_7.*
275+ List of data types
276+ Schema | Name | Description
277+ ------------------+----------------------------------+-------------
278+ regress_schema_7 | regress_schema_7.floatmultirange |
279+ regress_schema_7 | regress_schema_7.floatrange |
280+ regress_schema_7 | regress_schema_7.rainbow |
281+ regress_schema_7 | regress_schema_7.ss |
282+ regress_schema_7 | regress_schema_7.sss |
283+ (5 rows)
284+
215285DROP SCHEMA regress_schema_2 CASCADE;
216286NOTICE: drop cascades to 2 other objects
217287DETAIL: drop cascades to type regress_schema_2.ss
@@ -230,5 +300,18 @@ DROP SCHEMA regress_schema_5 CASCADE;
230300NOTICE: drop cascades to 2 other objects
231301DETAIL: drop cascades to collation regress_schema_5.coll
232302drop cascades to table regress_schema_5.t
303+ DROP SCHEMA regress_schema_6 CASCADE;
304+ NOTICE: drop cascades to 4 other objects
305+ DETAIL: drop cascades to type regress_schema_6.floatrange
306+ drop cascades to type regress_schema_6.ss
307+ drop cascades to type regress_schema_6.sss
308+ drop cascades to type regress_schema_6.rainbow
309+ DROP SCHEMA regress_schema_7 CASCADE;
310+ NOTICE: drop cascades to 5 other objects
311+ DETAIL: drop cascades to type regress_schema_7.floatrange
312+ drop cascades to type regress_schema_7.ss
313+ drop cascades to type regress_schema_7.sss
314+ drop cascades to type regress_schema_7.rainbow
315+ drop cascades to table regress_schema_7.t
233316-- Clean up
234317DROP ROLE regress_create_schema_role;
0 commit comments