Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit f8203f9

Browse files
committed
Support functions for index opclasses should be immutable.
Found by running opr_sanity on contrib modules.
1 parent 60e83ce commit f8203f9

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

contrib/pg_trgm/pg_trgm.sql.in

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,27 @@ BEGIN;
55
create function set_limit(float4)
66
returns float4
77
AS 'MODULE_PATHNAME'
8-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
8+
LANGUAGE C STRICT IMMUTABLE;
99

1010
create function show_limit()
1111
returns float4
1212
AS 'MODULE_PATHNAME'
13-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
13+
LANGUAGE C STRICT IMMUTABLE;
1414

1515
create function show_trgm(text)
1616
returns _text
1717
AS 'MODULE_PATHNAME'
18-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
18+
LANGUAGE C STRICT IMMUTABLE;
1919

2020
create function similarity(text,text)
2121
returns float4
2222
AS 'MODULE_PATHNAME'
23-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
23+
LANGUAGE C STRICT IMMUTABLE;
2424

2525
create function similarity_op(text,text)
2626
returns bool
2727
AS 'MODULE_PATHNAME'
28-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
28+
LANGUAGE C STRICT IMMUTABLE;
2929

3030
CREATE OPERATOR % (
3131
LEFTARG = text,
@@ -40,12 +40,12 @@ CREATE OPERATOR % (
4040
CREATE FUNCTION gtrgm_in(cstring)
4141
RETURNS gtrgm
4242
AS 'MODULE_PATHNAME'
43-
LANGUAGE C RETURNS NULL ON NULL INPUT;
43+
LANGUAGE C STRICT;
4444

4545
CREATE FUNCTION gtrgm_out(gtrgm)
4646
RETURNS cstring
4747
AS 'MODULE_PATHNAME'
48-
LANGUAGE C RETURNS NULL ON NULL INPUT;
48+
LANGUAGE C STRICT;
4949

5050
CREATE TYPE gtrgm (
5151
INTERNALLENGTH = -1,
@@ -57,37 +57,37 @@ CREATE TYPE gtrgm (
5757
CREATE FUNCTION gtrgm_consistent(gtrgm,internal,int4)
5858
RETURNS bool
5959
AS 'MODULE_PATHNAME'
60-
LANGUAGE C;
60+
LANGUAGE C IMMUTABLE;
6161

6262
CREATE FUNCTION gtrgm_compress(internal)
6363
RETURNS internal
6464
AS 'MODULE_PATHNAME'
65-
LANGUAGE C;
65+
LANGUAGE C IMMUTABLE;
6666

6767
CREATE FUNCTION gtrgm_decompress(internal)
6868
RETURNS internal
6969
AS 'MODULE_PATHNAME'
70-
LANGUAGE C;
70+
LANGUAGE C IMMUTABLE;
7171

7272
CREATE FUNCTION gtrgm_penalty(internal,internal,internal)
7373
RETURNS internal
7474
AS 'MODULE_PATHNAME'
75-
LANGUAGE C RETURNS NULL ON NULL INPUT;
75+
LANGUAGE C STRICT IMMUTABLE;
7676

7777
CREATE FUNCTION gtrgm_picksplit(internal, internal)
7878
RETURNS internal
7979
AS 'MODULE_PATHNAME'
80-
LANGUAGE C;
80+
LANGUAGE C IMMUTABLE;
8181

8282
CREATE FUNCTION gtrgm_union(bytea, internal)
8383
RETURNS _int4
8484
AS 'MODULE_PATHNAME'
85-
LANGUAGE C;
85+
LANGUAGE C IMMUTABLE;
8686

8787
CREATE FUNCTION gtrgm_same(gtrgm, gtrgm, internal)
8888
RETURNS internal
8989
AS 'MODULE_PATHNAME'
90-
LANGUAGE C;
90+
LANGUAGE C IMMUTABLE;
9191

9292
-- create the operator class for gist
9393
CREATE OPERATOR CLASS gist_trgm_ops
@@ -107,17 +107,17 @@ AS
107107
CREATE FUNCTION gin_extract_trgm(text, internal)
108108
RETURNS internal
109109
AS 'MODULE_PATHNAME'
110-
LANGUAGE C;
110+
LANGUAGE C IMMUTABLE;
111111

112112
CREATE FUNCTION gin_extract_trgm(text, internal, internal)
113113
RETURNS internal
114114
AS 'MODULE_PATHNAME'
115-
LANGUAGE C;
115+
LANGUAGE C IMMUTABLE;
116116

117117
CREATE FUNCTION gin_trgm_consistent(internal, internal, text)
118118
RETURNS internal
119119
AS 'MODULE_PATHNAME'
120-
LANGUAGE C;
120+
LANGUAGE C IMMUTABLE;
121121

122122
-- create the operator class for gin
123123
CREATE OPERATOR CLASS gin_trgm_ops

contrib/seg/seg.sql.in

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -323,37 +323,37 @@ CREATE OPERATOR ~ (
323323
CREATE FUNCTION gseg_consistent(internal,seg,int4)
324324
RETURNS bool
325325
AS 'MODULE_PATHNAME'
326-
LANGUAGE C;
326+
LANGUAGE C IMMUTABLE;
327327

328328
CREATE FUNCTION gseg_compress(internal)
329329
RETURNS internal
330330
AS 'MODULE_PATHNAME'
331-
LANGUAGE C;
331+
LANGUAGE C IMMUTABLE;
332332

333333
CREATE FUNCTION gseg_decompress(internal)
334334
RETURNS internal
335335
AS 'MODULE_PATHNAME'
336-
LANGUAGE C;
336+
LANGUAGE C IMMUTABLE;
337337

338338
CREATE FUNCTION gseg_penalty(internal,internal,internal)
339339
RETURNS internal
340340
AS 'MODULE_PATHNAME'
341-
LANGUAGE C STRICT;
341+
LANGUAGE C STRICT IMMUTABLE;
342342

343343
CREATE FUNCTION gseg_picksplit(internal, internal)
344344
RETURNS internal
345345
AS 'MODULE_PATHNAME'
346-
LANGUAGE C;
346+
LANGUAGE C IMMUTABLE;
347347

348348
CREATE FUNCTION gseg_union(internal, internal)
349349
RETURNS seg
350350
AS 'MODULE_PATHNAME'
351-
LANGUAGE C;
351+
LANGUAGE C IMMUTABLE;
352352

353353
CREATE FUNCTION gseg_same(seg, seg, internal)
354354
RETURNS internal
355355
AS 'MODULE_PATHNAME'
356-
LANGUAGE C;
356+
LANGUAGE C IMMUTABLE;
357357

358358

359359
-- Create the operator classes for indexing

0 commit comments

Comments
 (0)