Skip to content

Commit 97a5a16

Browse files
committed
contrib/citext: Use SQL-standard function bodies.
In the same spirit as 969bbd0, 13e3796, 3f323eb. Tom Lane and Ronan Dunklau Discussion: https://postgr.es/m/3316564.aeNJFYEL58@aivenlaptop
1 parent eb53ff5 commit 97a5a16

File tree

4 files changed

+63
-1
lines changed

4 files changed

+63
-1
lines changed

contrib/citext/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ MODULES = citext
44

55
EXTENSION = citext
66
DATA = citext--1.4.sql \
7+
citext--1.7--1.8.sql \
78
citext--1.6--1.7.sql \
89
citext--1.5--1.6.sql \
910
citext--1.4--1.5.sql \

contrib/citext/citext--1.7--1.8.sql

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/* contrib/citext/citext--1.7--1.8.sql */
2+
3+
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
4+
\echo Use "ALTER EXTENSION citext UPDATE TO '1.8'" to load this file. \quit
5+
6+
CREATE OR REPLACE FUNCTION regexp_match(string citext, pattern citext) RETURNS TEXT[]
7+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
8+
RETURN pg_catalog.regexp_match( $1::text, $2::text, 'i' );
9+
10+
CREATE OR REPLACE FUNCTION regexp_match(string citext, pattern citext, flags text) RETURNS TEXT[]
11+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
12+
RETURN pg_catalog.regexp_match( $1::text, $2::text, CASE WHEN pg_catalog.strpos($3, 'c') = 0 THEN $3 || 'i' ELSE $3 END );
13+
14+
CREATE OR REPLACE FUNCTION regexp_matches(string citext, pattern citext) RETURNS SETOF TEXT[]
15+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ROWS 1
16+
RETURN pg_catalog.regexp_matches( $1::text, $2::text, 'i' );
17+
18+
CREATE OR REPLACE FUNCTION regexp_matches(string citext, pattern citext, flags text) RETURNS SETOF TEXT[]
19+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE ROWS 10
20+
RETURN pg_catalog.regexp_matches( $1::text, $2::text, CASE WHEN pg_catalog.strpos($3, 'c') = 0 THEN $3 || 'i' ELSE $3 END );
21+
22+
CREATE OR REPLACE FUNCTION regexp_replace(string citext, pattern citext, replacement text) returns TEXT
23+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
24+
RETURN pg_catalog.regexp_replace( $1::text, $2::text, $3, 'i');
25+
26+
CREATE OR REPLACE FUNCTION regexp_replace(string citext, pattern citext, replacement text, flags text) returns TEXT
27+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
28+
RETURN pg_catalog.regexp_replace( $1::text, $2::text, $3, CASE WHEN pg_catalog.strpos($4, 'c') = 0 THEN $4 || 'i' ELSE $4 END);
29+
30+
CREATE OR REPLACE FUNCTION regexp_split_to_array(string citext, pattern citext) RETURNS TEXT[]
31+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
32+
RETURN pg_catalog.regexp_split_to_array( $1::text, $2::text, 'i' );
33+
34+
CREATE OR REPLACE FUNCTION regexp_split_to_array(string citext, pattern citext, flags text) RETURNS TEXT[]
35+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
36+
RETURN pg_catalog.regexp_split_to_array( $1::text, $2::text, CASE WHEN pg_catalog.strpos($3, 'c') = 0 THEN $3 || 'i' ELSE $3 END );
37+
38+
CREATE OR REPLACE FUNCTION regexp_split_to_table(string citext, pattern citext) RETURNS SETOF TEXT
39+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
40+
RETURN pg_catalog.regexp_split_to_table( $1::text, $2::text, 'i' );
41+
42+
CREATE OR REPLACE FUNCTION regexp_split_to_table(string citext, pattern citext, flags text) RETURNS SETOF TEXT
43+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
44+
RETURN pg_catalog.regexp_split_to_table( $1::text, $2::text, CASE WHEN pg_catalog.strpos($3, 'c') = 0 THEN $3 || 'i' ELSE $3 END );
45+
46+
CREATE OR REPLACE FUNCTION strpos( citext, citext ) RETURNS INT
47+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
48+
RETURN pg_catalog.strpos( pg_catalog.lower( $1::text ), pg_catalog.lower( $2::text ) );
49+
50+
CREATE OR REPLACE FUNCTION replace( citext, citext, citext ) RETURNS TEXT
51+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
52+
RETURN pg_catalog.regexp_replace( $1::text, pg_catalog.regexp_replace($2::text, '([^a-zA-Z_0-9])', E'\\\\\\1', 'g'), $3::text, 'gi' );
53+
54+
CREATE OR REPLACE FUNCTION split_part( citext, citext, int ) RETURNS TEXT
55+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
56+
RETURN (pg_catalog.regexp_split_to_array( $1::text, pg_catalog.regexp_replace($2::text, '([^a-zA-Z_0-9])', E'\\\\\\1', 'g'), 'i'))[$3];
57+
58+
CREATE OR REPLACE FUNCTION translate( citext, citext, text ) RETURNS TEXT
59+
LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE
60+
RETURN pg_catalog.translate( pg_catalog.translate( $1::text, pg_catalog.lower($2::text), $3), pg_catalog.upper($2::text), $3);

contrib/citext/citext.control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# citext extension
22
comment = 'data type for case-insensitive character strings'
3-
default_version = '1.7'
3+
default_version = '1.8'
44
module_pathname = '$libdir/citext'
55
relocatable = true
66
trusted = true

contrib/citext/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ install_data(
2626
'citext--1.4--1.5.sql',
2727
'citext--1.5--1.6.sql',
2828
'citext--1.6--1.7.sql',
29+
'citext--1.7--1.8.sql',
2930
kwargs: contrib_data_args,
3031
)
3132

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy