1--
2-- regproc
3--
4/* If objects exist, return oids */
5CREATE ROLE regress_regrole_test;
6-- without schemaname
7SELECT regoper('||/');
8 regoper
9---------
10 ||/
11(1 row)
12
13SELECT regoperator('+(int4,int4)');
14    regoperator
15--------------------
16 +(integer,integer)
17(1 row)
18
19SELECT regproc('now');
20 regproc
21---------
22 now
23(1 row)
24
25SELECT regprocedure('abs(numeric)');
26 regprocedure
27--------------
28 abs(numeric)
29(1 row)
30
31SELECT regclass('pg_class');
32 regclass
33----------
34 pg_class
35(1 row)
36
37SELECT regtype('int4');
38 regtype
39---------
40 integer
41(1 row)
42
43SELECT to_regoper('||/');
44 to_regoper
45------------
46 ||/
47(1 row)
48
49SELECT to_regoperator('+(int4,int4)');
50   to_regoperator
51--------------------
52 +(integer,integer)
53(1 row)
54
55SELECT to_regproc('now');
56 to_regproc
57------------
58 now
59(1 row)
60
61SELECT to_regprocedure('abs(numeric)');
62 to_regprocedure
63-----------------
64 abs(numeric)
65(1 row)
66
67SELECT to_regclass('pg_class');
68 to_regclass
69-------------
70 pg_class
71(1 row)
72
73SELECT to_regtype('int4');
74 to_regtype
75------------
76 integer
77(1 row)
78
79-- with schemaname
80SELECT regoper('pg_catalog.||/');
81 regoper
82---------
83 ||/
84(1 row)
85
86SELECT regoperator('pg_catalog.+(int4,int4)');
87    regoperator
88--------------------
89 +(integer,integer)
90(1 row)
91
92SELECT regproc('pg_catalog.now');
93 regproc
94---------
95 now
96(1 row)
97
98SELECT regprocedure('pg_catalog.abs(numeric)');
99 regprocedure
100--------------
101 abs(numeric)
102(1 row)
103
104SELECT regclass('pg_catalog.pg_class');
105 regclass
106----------
107 pg_class
108(1 row)
109
110SELECT regtype('pg_catalog.int4');
111 regtype
112---------
113 integer
114(1 row)
115
116SELECT to_regoper('pg_catalog.||/');
117 to_regoper
118------------
119 ||/
120(1 row)
121
122SELECT to_regproc('pg_catalog.now');
123 to_regproc
124------------
125 now
126(1 row)
127
128SELECT to_regprocedure('pg_catalog.abs(numeric)');
129 to_regprocedure
130-----------------
131 abs(numeric)
132(1 row)
133
134SELECT to_regclass('pg_catalog.pg_class');
135 to_regclass
136-------------
137 pg_class
138(1 row)
139
140SELECT to_regtype('pg_catalog.int4');
141 to_regtype
142------------
143 integer
144(1 row)
145
146-- schemaname not applicable
147SELECT regrole('regress_regrole_test');
148       regrole
149----------------------
150 regress_regrole_test
151(1 row)
152
153SELECT regrole('"regress_regrole_test"');
154       regrole
155----------------------
156 regress_regrole_test
157(1 row)
158
159SELECT regnamespace('pg_catalog');
160 regnamespace
161--------------
162 pg_catalog
163(1 row)
164
165SELECT regnamespace('"pg_catalog"');
166 regnamespace
167--------------
168 pg_catalog
169(1 row)
170
171SELECT to_regrole('regress_regrole_test');
172      to_regrole
173----------------------
174 regress_regrole_test
175(1 row)
176
177SELECT to_regrole('"regress_regrole_test"');
178      to_regrole
179----------------------
180 regress_regrole_test
181(1 row)
182
183SELECT to_regnamespace('pg_catalog');
184 to_regnamespace
185-----------------
186 pg_catalog
187(1 row)
188
189SELECT to_regnamespace('"pg_catalog"');
190 to_regnamespace
191-----------------
192 pg_catalog
193(1 row)
194
195/* If objects don't exist, raise errors. */
196DROP ROLE regress_regrole_test;
197-- without schemaname
198SELECT regoper('||//');
199ERROR:  operator does not exist: ||//
200LINE 1: SELECT regoper('||//');
201                       ^
202SELECT regoperator('++(int4,int4)');
203ERROR:  operator does not exist: ++(int4,int4)
204LINE 1: SELECT regoperator('++(int4,int4)');
205                           ^
206SELECT regproc('know');
207ERROR:  function "know" does not exist
208LINE 1: SELECT regproc('know');
209                       ^
210SELECT regprocedure('absinthe(numeric)');
211ERROR:  function "absinthe(numeric)" does not exist
212LINE 1: SELECT regprocedure('absinthe(numeric)');
213                            ^
214SELECT regclass('pg_classes');
215ERROR:  relation "pg_classes" does not exist
216LINE 1: SELECT regclass('pg_classes');
217                        ^
218SELECT regtype('int3');
219ERROR:  type "int3" does not exist
220LINE 1: SELECT regtype('int3');
221                       ^
222-- with schemaname
223SELECT regoper('ng_catalog.||/');
224ERROR:  schema "ng_catalog" does not exist
225LINE 1: SELECT regoper('ng_catalog.||/');
226                       ^
227SELECT regoperator('ng_catalog.+(int4,int4)');
228ERROR:  operator does not exist: ng_catalog.+(int4,int4)
229LINE 1: SELECT regoperator('ng_catalog.+(int4,int4)');
230                           ^
231SELECT regproc('ng_catalog.now');
232ERROR:  schema "ng_catalog" does not exist
233LINE 1: SELECT regproc('ng_catalog.now');
234                       ^
235SELECT regprocedure('ng_catalog.abs(numeric)');
236ERROR:  schema "ng_catalog" does not exist
237LINE 1: SELECT regprocedure('ng_catalog.abs(numeric)');
238                            ^
239SELECT regclass('ng_catalog.pg_class');
240ERROR:  schema "ng_catalog" does not exist
241LINE 1: SELECT regclass('ng_catalog.pg_class');
242                        ^
243SELECT regtype('ng_catalog.int4');
244ERROR:  schema "ng_catalog" does not exist
245LINE 1: SELECT regtype('ng_catalog.int4');
246                       ^
247-- schemaname not applicable
248SELECT regrole('regress_regrole_test');
249ERROR:  role "regress_regrole_test" does not exist
250LINE 1: SELECT regrole('regress_regrole_test');
251                       ^
252SELECT regrole('"regress_regrole_test"');
253ERROR:  role "regress_regrole_test" does not exist
254LINE 1: SELECT regrole('"regress_regrole_test"');
255                       ^
256SELECT regrole('Nonexistent');
257ERROR:  role "nonexistent" does not exist
258LINE 1: SELECT regrole('Nonexistent');
259                       ^
260SELECT regrole('"Nonexistent"');
261ERROR:  role "Nonexistent" does not exist
262LINE 1: SELECT regrole('"Nonexistent"');
263                       ^
264SELECT regrole('foo.bar');
265ERROR:  invalid name syntax
266LINE 1: SELECT regrole('foo.bar');
267                       ^
268SELECT regnamespace('Nonexistent');
269ERROR:  schema "nonexistent" does not exist
270LINE 1: SELECT regnamespace('Nonexistent');
271                            ^
272SELECT regnamespace('"Nonexistent"');
273ERROR:  schema "Nonexistent" does not exist
274LINE 1: SELECT regnamespace('"Nonexistent"');
275                            ^
276SELECT regnamespace('foo.bar');
277ERROR:  invalid name syntax
278LINE 1: SELECT regnamespace('foo.bar');
279                            ^
280/* If objects don't exist, return NULL with no error. */
281-- without schemaname
282SELECT to_regoper('||//');
283 to_regoper
284------------
285
286(1 row)
287
288SELECT to_regoperator('++(int4,int4)');
289 to_regoperator
290----------------
291
292(1 row)
293
294SELECT to_regproc('know');
295 to_regproc
296------------
297
298(1 row)
299
300SELECT to_regprocedure('absinthe(numeric)');
301 to_regprocedure
302-----------------
303
304(1 row)
305
306SELECT to_regclass('pg_classes');
307 to_regclass
308-------------
309
310(1 row)
311
312SELECT to_regtype('int3');
313 to_regtype
314------------
315
316(1 row)
317
318-- with schemaname
319SELECT to_regoper('ng_catalog.||/');
320 to_regoper
321------------
322
323(1 row)
324
325SELECT to_regoperator('ng_catalog.+(int4,int4)');
326 to_regoperator
327----------------
328
329(1 row)
330
331SELECT to_regproc('ng_catalog.now');
332 to_regproc
333------------
334
335(1 row)
336
337SELECT to_regprocedure('ng_catalog.abs(numeric)');
338 to_regprocedure
339-----------------
340
341(1 row)
342
343SELECT to_regclass('ng_catalog.pg_class');
344 to_regclass
345-------------
346
347(1 row)
348
349SELECT to_regtype('ng_catalog.int4');
350 to_regtype
351------------
352
353(1 row)
354
355-- schemaname not applicable
356SELECT to_regrole('regress_regrole_test');
357 to_regrole
358------------
359
360(1 row)
361
362SELECT to_regrole('"regress_regrole_test"');
363 to_regrole
364------------
365
366(1 row)
367
368SELECT to_regrole('foo.bar');
369ERROR:  invalid name syntax
370SELECT to_regrole('Nonexistent');
371 to_regrole
372------------
373
374(1 row)
375
376SELECT to_regrole('"Nonexistent"');
377 to_regrole
378------------
379
380(1 row)
381
382SELECT to_regrole('foo.bar');
383ERROR:  invalid name syntax
384SELECT to_regnamespace('Nonexistent');
385 to_regnamespace
386-----------------
387
388(1 row)
389
390SELECT to_regnamespace('"Nonexistent"');
391 to_regnamespace
392-----------------
393
394(1 row)
395
396SELECT to_regnamespace('foo.bar');
397ERROR:  invalid name syntax
398