1- /* contrib/citext/citext--1.1 .sql*/
1+ /* contrib/citext/citext--1.2 .sql*/
22
33-- complain if script is sourced in psql, rather than via CREATE EXTENSION
44\echo Use" CREATE EXTENSION citext" to load this file. \quit
@@ -22,22 +22,22 @@ CREATE TYPE citext;
2222CREATE FUNCTION citextin (cstring)
2323RETURNS citext
2424AS ' textin'
25- LANGUAGE internal IMMUTABLE STRICT;
25+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
2626
2727CREATE FUNCTION citextout (citext)
2828RETURNS cstring
2929AS ' textout'
30- LANGUAGE internal IMMUTABLE STRICT;
30+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
3131
3232CREATE FUNCTION citextrecv (internal)
3333RETURNS citext
3434AS ' textrecv'
35- LANGUAGE internal STABLE STRICT;
35+ LANGUAGE internal STABLE STRICT PARALLEL SAFE ;
3636
3737CREATE FUNCTION citextsend (citext)
3838RETURNSbytea
3939AS ' textsend'
40- LANGUAGE internal STABLE STRICT;
40+ LANGUAGE internal STABLE STRICT PARALLEL SAFE ;
4141
4242--
4343-- The type itself.
@@ -64,17 +64,17 @@ CREATE TYPE citext (
6464CREATE FUNCTION citext (bpchar)
6565RETURNS citext
6666AS ' rtrim1'
67- LANGUAGE internal IMMUTABLE STRICT;
67+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
6868
6969CREATE FUNCTION citext (boolean )
7070RETURNS citext
7171AS ' booltext'
72- LANGUAGE internal IMMUTABLE STRICT;
72+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
7373
7474CREATE FUNCTION citext (inet )
7575RETURNS citext
7676AS ' network_show'
77- LANGUAGE internal IMMUTABLE STRICT;
77+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
7878
7979--
8080-- Implicit and assignment type casts.
@@ -96,32 +96,32 @@ CREATE CAST (inet AS citext) WITH FUNCTION citext(inet) AS ASSIGNMENT;
9696CREATE FUNCTION citext_eq ( citext, citext )
9797RETURNS bool
9898AS ' MODULE_PATHNAME'
99- LANGUAGE C IMMUTABLE STRICT;
99+ LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE ;
100100
101101CREATE FUNCTION citext_ne ( citext, citext )
102102RETURNS bool
103103AS ' MODULE_PATHNAME'
104- LANGUAGE C IMMUTABLE STRICT;
104+ LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE ;
105105
106106CREATE FUNCTION citext_lt ( citext, citext )
107107RETURNS bool
108108AS ' MODULE_PATHNAME'
109- LANGUAGE C IMMUTABLE STRICT;
109+ LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE ;
110110
111111CREATE FUNCTION citext_le ( citext, citext )
112112RETURNS bool
113113AS ' MODULE_PATHNAME'
114- LANGUAGE C IMMUTABLE STRICT;
114+ LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE ;
115115
116116CREATE FUNCTION citext_gt ( citext, citext )
117117RETURNS bool
118118AS ' MODULE_PATHNAME'
119- LANGUAGE C IMMUTABLE STRICT;
119+ LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE ;
120120
121121CREATE FUNCTION citext_ge ( citext, citext )
122122RETURNS bool
123123AS ' MODULE_PATHNAME'
124- LANGUAGE C IMMUTABLE STRICT;
124+ LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE ;
125125
126126--
127127-- Operators.
@@ -196,12 +196,12 @@ CREATE OPERATOR > (
196196CREATE FUNCTION citext_cmp (citext, citext)
197197RETURNS int4
198198AS ' MODULE_PATHNAME'
199- LANGUAGE C STRICT IMMUTABLE;
199+ LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE ;
200200
201201CREATE FUNCTION citext_hash (citext)
202202RETURNS int4
203203AS ' MODULE_PATHNAME'
204- LANGUAGE C STRICT IMMUTABLE;
204+ LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE ;
205205
206206--
207207-- The btree indexing operator class.
@@ -232,23 +232,27 @@ DEFAULT FOR TYPE citext USING hash AS
232232CREATE FUNCTION citext_smaller (citext, citext)
233233RETURNS citext
234234AS ' MODULE_PATHNAME'
235- LANGUAGE C IMMUTABLE STRICT;
235+ LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE ;
236236
237237CREATE FUNCTION citext_larger (citext, citext)
238238RETURNS citext
239239AS ' MODULE_PATHNAME'
240- LANGUAGE C IMMUTABLE STRICT;
240+ LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE ;
241241
242242CREATE AGGREGATE min (citext) (
243243 SFUNC= citext_smaller,
244244 STYPE= citext,
245- SORTOP= <
245+ SORTOP= < ,
246+ PARALLEL= SAFE,
247+ COMBINEFUNC= citext_smaller
246248);
247249
248250CREATE AGGREGATE max (citext) (
249251 SFUNC= citext_larger,
250252 STYPE= citext,
251- SORTOP= >
253+ SORTOP= > ,
254+ PARALLEL= SAFE,
255+ COMBINEFUNC= citext_larger
252256);
253257
254258--
@@ -257,19 +261,19 @@ CREATE AGGREGATE max(citext) (
257261
258262CREATE FUNCTION texticlike (citext, citext)
259263RETURNS boolAS ' texticlike'
260- LANGUAGE internal IMMUTABLE STRICT;
264+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
261265
262266CREATE FUNCTION texticnlike (citext, citext)
263267RETURNS boolAS ' texticnlike'
264- LANGUAGE internal IMMUTABLE STRICT;
268+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
265269
266270CREATE FUNCTION texticregexeq (citext, citext)
267271RETURNS boolAS ' texticregexeq'
268- LANGUAGE internal IMMUTABLE STRICT;
272+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
269273
270274CREATE FUNCTION texticregexne (citext, citext)
271275RETURNS boolAS ' texticregexne'
272- LANGUAGE internal IMMUTABLE STRICT;
276+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
273277
274278CREATE OPERATOR ~ (
275279 PROCEDURE= texticregexeq,
@@ -349,19 +353,19 @@ CREATE OPERATOR !~~* (
349353
350354CREATE FUNCTION texticlike (citext,text )
351355RETURNS boolAS ' texticlike'
352- LANGUAGE internal IMMUTABLE STRICT;
356+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
353357
354358CREATE FUNCTION texticnlike (citext,text )
355359RETURNS boolAS ' texticnlike'
356- LANGUAGE internal IMMUTABLE STRICT;
360+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
357361
358362CREATE FUNCTION texticregexeq (citext,text )
359363RETURNS boolAS ' texticregexeq'
360- LANGUAGE internal IMMUTABLE STRICT;
364+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
361365
362366CREATE FUNCTION texticregexne (citext,text )
363367RETURNS boolAS ' texticregexne'
364- LANGUAGE internal IMMUTABLE STRICT;
368+ LANGUAGE internal IMMUTABLE STRICT PARALLEL SAFE ;
365369
366370CREATE OPERATOR ~ (
367371 PROCEDURE= texticregexeq,
@@ -442,48 +446,48 @@ CREATE OPERATOR !~~* (
442446
443447CREATE FUNCTION regexp_matches ( citext, citext ) RETURNS SETOFTEXT []AS $$
444448SELECT pg_catalog .regexp_matches ( $1 ::pg_catalog .text , $2 ::pg_catalog .text ,' i' );
445- $$ LANGUAGE SQL IMMUTABLE STRICT ROWS1 ;
449+ $$ LANGUAGE SQL IMMUTABLE STRICTPARALLEL SAFE ROWS1 ;
446450
447451CREATE FUNCTION regexp_matches ( citext, citext,text ) RETURNS SETOFTEXT []AS $$
448452SELECT pg_catalog .regexp_matches ( $1 ::pg_catalog .text , $2 ::pg_catalog .text , CASE WHENpg_catalog .strpos ($3 ,' c' )= 0 THEN $3 || ' i' ELSE $3 END );
449- $$ LANGUAGE SQL IMMUTABLE STRICT ROWS10 ;
453+ $$ LANGUAGE SQL IMMUTABLE STRICTPARALLEL SAFE ROWS10 ;
450454
451455CREATE FUNCTION regexp_replace ( citext, citext,text ) returnsTEXT AS $$
452456SELECT pg_catalog .regexp_replace ( $1 ::pg_catalog .text , $2 ::pg_catalog .text , $3 ,' i' );
453- $$ LANGUAGE SQL IMMUTABLE STRICT;
457+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
454458
455459CREATE FUNCTION regexp_replace ( citext, citext,text ,text ) returnsTEXT AS $$
456460SELECT pg_catalog .regexp_replace ( $1 ::pg_catalog .text , $2 ::pg_catalog .text , $3 , CASE WHENpg_catalog .strpos ($4 ,' c' )= 0 THEN $4 || ' i' ELSE $4 END);
457- $$ LANGUAGE SQL IMMUTABLE STRICT;
461+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
458462
459463CREATE FUNCTION regexp_split_to_array ( citext, citext ) RETURNSTEXT []AS $$
460464SELECT pg_catalog .regexp_split_to_array ( $1 ::pg_catalog .text , $2 ::pg_catalog .text ,' i' );
461- $$ LANGUAGE SQL IMMUTABLE STRICT;
465+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
462466
463467CREATE FUNCTION regexp_split_to_array ( citext, citext,text ) RETURNSTEXT []AS $$
464468SELECT pg_catalog .regexp_split_to_array ( $1 ::pg_catalog .text , $2 ::pg_catalog .text , CASE WHENpg_catalog .strpos ($3 ,' c' )= 0 THEN $3 || ' i' ELSE $3 END );
465- $$ LANGUAGE SQL IMMUTABLE STRICT;
469+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
466470
467471CREATE FUNCTION regexp_split_to_table ( citext, citext ) RETURNS SETOFTEXT AS $$
468472SELECT pg_catalog .regexp_split_to_table ( $1 ::pg_catalog .text , $2 ::pg_catalog .text ,' i' );
469- $$ LANGUAGE SQL IMMUTABLE STRICT;
473+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
470474
471475CREATE FUNCTION regexp_split_to_table ( citext, citext,text ) RETURNS SETOFTEXT AS $$
472476SELECT pg_catalog .regexp_split_to_table ( $1 ::pg_catalog .text , $2 ::pg_catalog .text , CASE WHENpg_catalog .strpos ($3 ,' c' )= 0 THEN $3 || ' i' ELSE $3 END );
473- $$ LANGUAGE SQL IMMUTABLE STRICT;
477+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
474478
475479CREATE FUNCTION strpos ( citext, citext ) RETURNSINT AS $$
476480SELECT pg_catalog .strpos (pg_catalog .lower ( $1 ::pg_catalog .text ),pg_catalog .lower ( $2 ::pg_catalog .text ) );
477- $$ LANGUAGE SQL IMMUTABLE STRICT;
481+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
478482
479483CREATE FUNCTION replace ( citext, citext, citext ) RETURNSTEXT AS $$
480484SELECT pg_catalog .regexp_replace ( $1 ::pg_catalog .text ,pg_catalog .regexp_replace ($2 ::pg_catalog .text ,' ([^a-zA-Z_0-9])' , E' \\\\\\ 1' ,' g' ), $3 ::pg_catalog .text ,' gi' );
481- $$ LANGUAGE SQL IMMUTABLE STRICT;
485+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
482486
483487CREATE FUNCTION split_part ( citext, citext,int ) RETURNSTEXT AS $$
484488SELECT (pg_catalog .regexp_split_to_array ( $1 ::pg_catalog .text ,pg_catalog .regexp_replace ($2 ::pg_catalog .text ,' ([^a-zA-Z_0-9])' , E' \\\\\\ 1' ,' g' ),' i' ))[$3 ];
485- $$ LANGUAGE SQL IMMUTABLE STRICT;
489+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;
486490
487491CREATE FUNCTION translate ( citext, citext,text ) RETURNSTEXT AS $$
488492SELECT pg_catalog .translate (pg_catalog .translate ( $1 ::pg_catalog .text ,pg_catalog .lower ($2 ::pg_catalog .text ), $3 ),pg_catalog .upper ($2 ::pg_catalog .text ), $3 );
489- $$ LANGUAGE SQL IMMUTABLE STRICT;
493+ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ;