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

Commit 2e0c47e

Browse files
committed
Support functions for index opclasses should be immutable.
Found by running opr_sanity on contrib modules.
1 parent d80d8ac commit 2e0c47e

File tree

1 file changed

+45
-45
lines changed

1 file changed

+45
-45
lines changed

contrib/intarray/_int.sql.in

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ BEGIN;
1212
CREATE FUNCTION bqarr_in(cstring)
1313
RETURNS query_int
1414
AS 'MODULE_PATHNAME'
15-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
15+
LANGUAGE C STRICT IMMUTABLE;
1616

1717
CREATE FUNCTION bqarr_out(query_int)
1818
RETURNS cstring
1919
AS 'MODULE_PATHNAME'
20-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
20+
LANGUAGE C STRICT IMMUTABLE;
2121

2222
CREATE TYPE query_int (
2323
INTERNALLENGTH = -1,
@@ -29,20 +29,20 @@ CREATE TYPE query_int (
2929
CREATE FUNCTION querytree(query_int)
3030
RETURNS text
3131
AS 'MODULE_PATHNAME'
32-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
32+
LANGUAGE C STRICT IMMUTABLE;
3333

3434

3535
CREATE FUNCTION boolop(_int4, query_int)
3636
RETURNS bool
3737
AS 'MODULE_PATHNAME'
38-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
38+
LANGUAGE C STRICT IMMUTABLE;
3939

4040
COMMENT ON FUNCTION boolop(_int4, query_int) IS 'boolean operation with array';
4141

4242
CREATE FUNCTION rboolop(query_int, _int4)
4343
RETURNS bool
4444
AS 'MODULE_PATHNAME'
45-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
45+
LANGUAGE C STRICT IMMUTABLE;
4646

4747
COMMENT ON FUNCTION rboolop(query_int, _int4) IS 'boolean operation with array';
4848

@@ -74,35 +74,35 @@ CREATE OPERATOR ~~ (
7474
CREATE FUNCTION _int_contains(_int4, _int4)
7575
RETURNS bool
7676
AS 'MODULE_PATHNAME'
77-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
77+
LANGUAGE C STRICT IMMUTABLE;
7878

7979
COMMENT ON FUNCTION _int_contains(_int4, _int4) IS 'contains';
8080

8181
CREATE FUNCTION _int_contained(_int4, _int4)
8282
RETURNS bool
8383
AS 'MODULE_PATHNAME'
84-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
84+
LANGUAGE C STRICT IMMUTABLE;
8585

8686
COMMENT ON FUNCTION _int_contained(_int4, _int4) IS 'contained in';
8787

8888
CREATE FUNCTION _int_overlap(_int4, _int4)
8989
RETURNS bool
9090
AS 'MODULE_PATHNAME'
91-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
91+
LANGUAGE C STRICT IMMUTABLE;
9292

9393
COMMENT ON FUNCTION _int_overlap(_int4, _int4) IS 'overlaps';
9494

9595
CREATE FUNCTION _int_same(_int4, _int4)
9696
RETURNS bool
9797
AS 'MODULE_PATHNAME'
98-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
98+
LANGUAGE C STRICT IMMUTABLE;
9999

100100
COMMENT ON FUNCTION _int_same(_int4, _int4) IS 'same as';
101101

102102
CREATE FUNCTION _int_different(_int4, _int4)
103103
RETURNS bool
104104
AS 'MODULE_PATHNAME'
105-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
105+
LANGUAGE C STRICT IMMUTABLE;
106106

107107
COMMENT ON FUNCTION _int_different(_int4, _int4) IS 'different';
108108

@@ -111,12 +111,12 @@ COMMENT ON FUNCTION _int_different(_int4, _int4) IS 'different';
111111
CREATE FUNCTION _int_union(_int4, _int4)
112112
RETURNS _int4
113113
AS 'MODULE_PATHNAME'
114-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
114+
LANGUAGE C STRICT IMMUTABLE;
115115

116116
CREATE FUNCTION _int_inter(_int4, _int4)
117117
RETURNS _int4
118118
AS 'MODULE_PATHNAME'
119-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
119+
LANGUAGE C STRICT IMMUTABLE;
120120

121121
--
122122
-- OPERATORS
@@ -194,12 +194,12 @@ CREATE OPERATOR ~ (
194194
CREATE FUNCTION intset(int4)
195195
RETURNS _int4
196196
AS 'MODULE_PATHNAME'
197-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
197+
LANGUAGE C STRICT IMMUTABLE;
198198

199199
CREATE FUNCTION icount(_int4)
200200
RETURNS int4
201201
AS 'MODULE_PATHNAME'
202-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
202+
LANGUAGE C STRICT IMMUTABLE;
203203

204204
CREATE OPERATOR # (
205205
RIGHTARG = _int4,
@@ -209,32 +209,32 @@ CREATE OPERATOR # (
209209
CREATE FUNCTION sort(_int4, text)
210210
RETURNS _int4
211211
AS 'MODULE_PATHNAME'
212-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
212+
LANGUAGE C STRICT IMMUTABLE;
213213

214214
CREATE FUNCTION sort(_int4)
215215
RETURNS _int4
216216
AS 'MODULE_PATHNAME'
217-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
217+
LANGUAGE C STRICT IMMUTABLE;
218218

219219
CREATE FUNCTION sort_asc(_int4)
220220
RETURNS _int4
221221
AS 'MODULE_PATHNAME'
222-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
222+
LANGUAGE C STRICT IMMUTABLE;
223223

224224
CREATE FUNCTION sort_desc(_int4)
225225
RETURNS _int4
226226
AS 'MODULE_PATHNAME'
227-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
227+
LANGUAGE C STRICT IMMUTABLE;
228228

229229
CREATE FUNCTION uniq(_int4)
230230
RETURNS _int4
231231
AS 'MODULE_PATHNAME'
232-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
232+
LANGUAGE C STRICT IMMUTABLE;
233233

234234
CREATE FUNCTION idx(_int4, int4)
235235
RETURNS int4
236236
AS 'MODULE_PATHNAME'
237-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
237+
LANGUAGE C STRICT IMMUTABLE;
238238

239239
CREATE OPERATOR # (
240240
LEFTARG = _int4,
@@ -245,17 +245,17 @@ CREATE OPERATOR # (
245245
CREATE FUNCTION subarray(_int4, int4, int4)
246246
RETURNS _int4
247247
AS 'MODULE_PATHNAME'
248-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
248+
LANGUAGE C STRICT IMMUTABLE;
249249

250250
CREATE FUNCTION subarray(_int4, int4)
251251
RETURNS _int4
252252
AS 'MODULE_PATHNAME'
253-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
253+
LANGUAGE C STRICT IMMUTABLE;
254254

255255
CREATE FUNCTION intarray_push_elem(_int4, int4)
256256
RETURNS _int4
257257
AS 'MODULE_PATHNAME'
258-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
258+
LANGUAGE C STRICT IMMUTABLE;
259259

260260
CREATE OPERATOR + (
261261
LEFTARG = _int4,
@@ -266,7 +266,7 @@ CREATE OPERATOR + (
266266
CREATE FUNCTION intarray_push_array(_int4, _int4)
267267
RETURNS _int4
268268
AS 'MODULE_PATHNAME'
269-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
269+
LANGUAGE C STRICT IMMUTABLE;
270270

271271
CREATE OPERATOR + (
272272
LEFTARG = _int4,
@@ -278,7 +278,7 @@ CREATE OPERATOR + (
278278
CREATE FUNCTION intarray_del_elem(_int4, int4)
279279
RETURNS _int4
280280
AS 'MODULE_PATHNAME'
281-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
281+
LANGUAGE C STRICT IMMUTABLE;
282282

283283
CREATE OPERATOR - (
284284
LEFTARG = _int4,
@@ -289,7 +289,7 @@ CREATE OPERATOR - (
289289
CREATE FUNCTION intset_union_elem(_int4, int4)
290290
RETURNS _int4
291291
AS 'MODULE_PATHNAME'
292-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
292+
LANGUAGE C STRICT IMMUTABLE;
293293

294294
CREATE OPERATOR | (
295295
LEFTARG = _int4,
@@ -307,7 +307,7 @@ CREATE OPERATOR | (
307307
CREATE FUNCTION intset_subtract(_int4, _int4)
308308
RETURNS _int4
309309
AS 'MODULE_PATHNAME'
310-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
310+
LANGUAGE C STRICT IMMUTABLE;
311311

312312
CREATE OPERATOR - (
313313
LEFTARG = _int4,
@@ -327,37 +327,37 @@ CREATE OPERATOR & (
327327
CREATE FUNCTION g_int_consistent(internal,_int4,int4)
328328
RETURNS bool
329329
AS 'MODULE_PATHNAME'
330-
LANGUAGE C;
330+
LANGUAGE C IMMUTABLE;
331331

332332
CREATE FUNCTION g_int_compress(internal)
333333
RETURNS internal
334334
AS 'MODULE_PATHNAME'
335-
LANGUAGE C;
335+
LANGUAGE C IMMUTABLE;
336336

337337
CREATE FUNCTION g_int_decompress(internal)
338338
RETURNS internal
339339
AS 'MODULE_PATHNAME'
340-
LANGUAGE C;
340+
LANGUAGE C IMMUTABLE;
341341

342342
CREATE FUNCTION g_int_penalty(internal,internal,internal)
343343
RETURNS internal
344344
AS 'MODULE_PATHNAME'
345-
LANGUAGE C RETURNS NULL ON NULL INPUT;
345+
LANGUAGE C IMMUTABLE STRICT;
346346

347347
CREATE FUNCTION g_int_picksplit(internal, internal)
348348
RETURNS internal
349349
AS 'MODULE_PATHNAME'
350-
LANGUAGE C;
350+
LANGUAGE C IMMUTABLE;
351351

352352
CREATE FUNCTION g_int_union(internal, internal)
353353
RETURNS _int4
354354
AS 'MODULE_PATHNAME'
355-
LANGUAGE C;
355+
LANGUAGE C IMMUTABLE;
356356

357357
CREATE FUNCTION g_int_same(_int4, _int4, internal)
358358
RETURNS internal
359359
AS 'MODULE_PATHNAME'
360-
LANGUAGE C;
360+
LANGUAGE C IMMUTABLE;
361361

362362

363363
-- Create the operator class for indexing
@@ -388,12 +388,12 @@ DEFAULT FOR TYPE _int4 USING gist AS
388388
CREATE FUNCTION _intbig_in(cstring)
389389
RETURNS intbig_gkey
390390
AS 'MODULE_PATHNAME'
391-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
391+
LANGUAGE C STRICT IMMUTABLE;
392392

393393
CREATE FUNCTION _intbig_out(intbig_gkey)
394394
RETURNS cstring
395395
AS 'MODULE_PATHNAME'
396-
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
396+
LANGUAGE C STRICT IMMUTABLE;
397397

398398
CREATE TYPE intbig_gkey (
399399
INTERNALLENGTH = -1,
@@ -404,37 +404,37 @@ CREATE TYPE intbig_gkey (
404404
CREATE FUNCTION g_intbig_consistent(internal,internal,int4)
405405
RETURNS bool
406406
AS 'MODULE_PATHNAME'
407-
LANGUAGE C;
407+
LANGUAGE C IMMUTABLE;
408408

409409
CREATE FUNCTION g_intbig_compress(internal)
410410
RETURNS internal
411411
AS 'MODULE_PATHNAME'
412-
LANGUAGE C;
412+
LANGUAGE C IMMUTABLE;
413413

414414
CREATE FUNCTION g_intbig_decompress(internal)
415415
RETURNS internal
416416
AS 'MODULE_PATHNAME'
417-
LANGUAGE C;
417+
LANGUAGE C IMMUTABLE;
418418

419419
CREATE FUNCTION g_intbig_penalty(internal,internal,internal)
420420
RETURNS internal
421421
AS 'MODULE_PATHNAME'
422-
LANGUAGE C RETURNS NULL ON NULL INPUT;
422+
LANGUAGE C IMMUTABLE STRICT;
423423

424424
CREATE FUNCTION g_intbig_picksplit(internal, internal)
425425
RETURNS internal
426426
AS 'MODULE_PATHNAME'
427-
LANGUAGE C;
427+
LANGUAGE C IMMUTABLE;
428428

429429
CREATE FUNCTION g_intbig_union(internal, internal)
430430
RETURNS _int4
431431
AS 'MODULE_PATHNAME'
432-
LANGUAGE C;
432+
LANGUAGE C IMMUTABLE;
433433

434434
CREATE FUNCTION g_intbig_same(internal, internal, internal)
435435
RETURNS internal
436436
AS 'MODULE_PATHNAME'
437-
LANGUAGE C;
437+
LANGUAGE C IMMUTABLE;
438438

439439
-- register the opclass for indexing (not as default)
440440

@@ -462,12 +462,12 @@ AS
462462
CREATE FUNCTION ginint4_queryextract(internal, internal, int2)
463463
RETURNS internal
464464
AS 'MODULE_PATHNAME'
465-
LANGUAGE C;
465+
LANGUAGE C IMMUTABLE;
466466

467467
CREATE FUNCTION ginint4_consistent(internal, int2, internal)
468468
RETURNS internal
469469
AS 'MODULE_PATHNAME'
470-
LANGUAGE C;
470+
LANGUAGE C IMMUTABLE;
471471

472472
CREATE OPERATOR CLASS gin__int_ops
473473
FOR TYPE _int4 USING gin

0 commit comments

Comments
 (0)