Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit13923be

Browse files
committed
1. null-safe interface to GiST
(as proposed inhttp://fts.postgresql.org/db/mw/msg.html?mid=1028327)2. support for 'pass-by-value' arguments - to test this we used special opclass for int4 with values in range [0-2^15] More testing will be done after resolving problem with index_formtuple and implementation of B-tree using GiST3. small patch to contrib modules (seg,cube,rtree_gist,intarray) - mark functions as 'isstrict' where needed.Oleg Bartunov
1 parent77a69a2 commit13923be

File tree

7 files changed

+475
-370
lines changed

7 files changed

+475
-370
lines changed

‎contrib/cube/cube.sql.in

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,25 @@ COMMENT ON TYPE cube IS
2828
-- Left/Right methods
2929

3030
CREATE FUNCTION cube_over_left(cube, cube) RETURNS bool
31-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
31+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
3232

3333
COMMENT ON FUNCTION cube_over_left(cube, cube) IS
3434
'is over and left of (NOT IMPLEMENTED)';
3535

3636
CREATE FUNCTION cube_over_right(cube, cube) RETURNS bool
37-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
37+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
3838

3939
COMMENT ON FUNCTION cube_over_right(cube, cube) IS
4040
'is over and right of (NOT IMPLEMENTED)';
4141

4242
CREATE FUNCTION cube_left(cube, cube) RETURNS bool
43-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
43+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
4444

4545
COMMENT ON FUNCTION cube_left(cube, cube) IS
4646
'is left of (NOT IMPLEMENTED)';
4747

4848
CREATE FUNCTION cube_right(cube, cube) RETURNS bool
49-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
49+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
5050

5151
COMMENT ON FUNCTION cube_right(cube, cube) IS
5252
'is right of (NOT IMPLEMENTED)';
@@ -55,65 +55,65 @@ COMMENT ON FUNCTION cube_right(cube, cube) IS
5555
-- Comparison methods
5656

5757
CREATE FUNCTION cube_lt(cube, cube) RETURNS bool
58-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
58+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
5959

6060
COMMENT ON FUNCTION cube_lt(cube, cube) IS
6161
'lower than';
6262

6363
CREATE FUNCTION cube_gt(cube, cube) RETURNS bool
64-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
64+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
6565

6666
COMMENT ON FUNCTION cube_gt(cube, cube) IS
6767
'greater than';
6868

6969
CREATE FUNCTION cube_contains(cube, cube) RETURNS bool
70-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
70+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
7171

7272
COMMENT ON FUNCTION cube_contains(cube, cube) IS
7373
'contains';
7474

7575
CREATE FUNCTION cube_contained(cube, cube) RETURNS bool
76-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
76+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
7777

7878
COMMENT ON FUNCTION cube_contained(cube, cube) IS
7979
'contained in';
8080

8181
CREATE FUNCTION cube_overlap(cube, cube) RETURNS bool
82-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
82+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
8383

8484
COMMENT ON FUNCTION cube_overlap(cube, cube) IS
8585
'overlaps';
8686

8787
CREATE FUNCTION cube_same(cube, cube) RETURNS bool
88-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
88+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
8989

9090
COMMENT ON FUNCTION cube_same(cube, cube) IS
9191
'same as';
9292

9393
CREATE FUNCTION cube_different(cube, cube) RETURNS bool
94-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
94+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
9595

9696
COMMENT ON FUNCTION cube_different(cube, cube) IS
9797
'different';
9898

9999
-- support routines for indexing
100100

101101
CREATE FUNCTION cube_union(cube, cube) RETURNS cube
102-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
102+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
103103

104104
CREATE FUNCTION cube_inter(cube, cube) RETURNS cube
105-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
105+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
106106

107107
CREATE FUNCTION cube_size(cube) RETURNS float4
108-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
108+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
109109

110110

111111
-- Misc N-dimensional functions
112112

113113
-- proximity routines
114114

115115
CREATE FUNCTION cube_distance(cube, cube) RETURNS float4
116-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
116+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
117117

118118

119119
--
@@ -199,7 +199,7 @@ CREATE FUNCTION g_cube_decompress(opaque) RETURNS opaque
199199
AS 'MODULE_PATHNAME' LANGUAGE 'c';
200200

201201
CREATE FUNCTION g_cube_penalty(opaque,opaque,opaque) RETURNS opaque
202-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
202+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
203203

204204
CREATE FUNCTION g_cube_picksplit(opaque, opaque) RETURNS opaque
205205
AS 'MODULE_PATHNAME' LANGUAGE 'c';

‎contrib/intarray/_int.sql.in

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,39 @@ BEGIN TRANSACTION;
99
-- Comparison methods
1010

1111
CREATE FUNCTION _int_contains(_int4, _int4) RETURNS bool
12-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
12+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
1313

1414
INSERT INTO pg_description (objoid, description)
1515
SELECT oid, 'contains'::text
1616
FROM pg_proc
1717
WHERE proname = '_int_contains'::name;
1818

1919
CREATE FUNCTION _int_contained(_int4, _int4) RETURNS bool
20-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
20+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
2121

2222
INSERT INTO pg_description (objoid, description)
2323
SELECT oid, 'contained in'::text
2424
FROM pg_proc
2525
WHERE proname = '_int_contained'::name;
2626

2727
CREATE FUNCTION _int_overlap(_int4, _int4) RETURNS bool
28-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
28+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
2929

3030
INSERT INTO pg_description (objoid, description)
3131
SELECT oid, 'overlaps'::text
3232
FROM pg_proc
3333
WHERE proname = '_int_overlap'::name;
3434

3535
CREATE FUNCTION _int_same(_int4, _int4) RETURNS bool
36-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
36+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
3737

3838
INSERT INTO pg_description (objoid, description)
3939
SELECT oid, 'same as'::text
4040
FROM pg_proc
4141
WHERE proname = '_int_same'::name;
4242

4343
CREATE FUNCTION _int_different(_int4, _int4) RETURNS bool
44-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
44+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
4545

4646
INSERT INTO pg_description (objoid, description)
4747
SELECT oid, 'different'::text
@@ -51,10 +51,10 @@ INSERT INTO pg_description (objoid, description)
5151
-- support routines for indexing
5252

5353
CREATE FUNCTION _int_union(_int4, _int4) RETURNS _int4
54-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
54+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
5555

5656
CREATE FUNCTION _int_inter(_int4, _int4) RETURNS _int4
57-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
57+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
5858

5959
--
6060
-- OPERATORS
@@ -223,7 +223,7 @@ CREATE FUNCTION g_intbig_decompress(opaque) RETURNS opaque
223223
AS 'MODULE_PATHNAME' LANGUAGE 'c';
224224

225225
CREATE FUNCTION g_intbig_penalty(opaque,opaque,opaque) RETURNS opaque
226-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
226+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
227227

228228
CREATE FUNCTION g_intbig_picksplit(opaque, opaque) RETURNS opaque
229229
AS 'MODULE_PATHNAME' LANGUAGE 'c';

‎contrib/rtree_gist/rtree_gist.sql.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ create function gbox_compress(opaque) returns opaque as 'MODULE_PATHNAME' langua
1313

1414
create function rtree_decompress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
1515

16-
create function gbox_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
16+
create function gbox_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C' with (isstrict);
1717

1818
create function gbox_picksplit(opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
1919

‎contrib/seg/seg.sql.in

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,25 @@ COMMENT ON TYPE seg IS
2828
-- Left/Right methods
2929

3030
CREATE FUNCTION seg_over_left(seg, seg) RETURNS bool
31-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
31+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
3232

3333
COMMENT ON FUNCTION seg_over_left(seg, seg) IS
3434
'is over and left of';
3535

3636
CREATE FUNCTION seg_over_right(seg, seg) RETURNS bool
37-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
37+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
3838

3939
COMMENT ON FUNCTION seg_over_right(seg, seg) IS
4040
'is over and right of';
4141

4242
CREATE FUNCTION seg_left(seg, seg) RETURNS bool
43-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
43+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
4444

4545
COMMENT ON FUNCTION seg_left(seg, seg) IS
4646
'is left of';
4747

4848
CREATE FUNCTION seg_right(seg, seg) RETURNS bool
49-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
49+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
5050

5151
COMMENT ON FUNCTION seg_right(seg, seg) IS
5252
'is right of';
@@ -55,77 +55,77 @@ COMMENT ON FUNCTION seg_right(seg, seg) IS
5555
-- Comparison methods
5656

5757
CREATE FUNCTION seg_lt(seg, seg) RETURNS bool
58-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
58+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
5959

6060
COMMENT ON FUNCTION seg_lt(seg, seg) IS
6161
'less than';
6262

6363
CREATE FUNCTION seg_le(seg, seg) RETURNS bool
64-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
64+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
6565

6666
COMMENT ON FUNCTION seg_le(seg, seg) IS
6767
'less than or equal';
6868

6969
CREATE FUNCTION seg_gt(seg, seg) RETURNS bool
70-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
70+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
7171

7272
COMMENT ON FUNCTION seg_gt(seg, seg) IS
7373
'greater than';
7474

7575
CREATE FUNCTION seg_ge(seg, seg) RETURNS bool
76-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
76+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
7777

7878
COMMENT ON FUNCTION seg_ge(seg, seg) IS
7979
'greater than or equal';
8080

8181
CREATE FUNCTION seg_contains(seg, seg) RETURNS bool
82-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
82+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
8383

8484
COMMENT ON FUNCTION seg_contains(seg, seg) IS
8585
'contains';
8686

8787
CREATE FUNCTION seg_contained(seg, seg) RETURNS bool
88-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
88+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
8989

9090
COMMENT ON FUNCTION seg_contained(seg, seg) IS
9191
'contained in';
9292

9393
CREATE FUNCTION seg_overlap(seg, seg) RETURNS bool
94-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
94+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
9595

9696
COMMENT ON FUNCTION seg_overlap(seg, seg) IS
9797
'overlaps';
9898

9999
CREATE FUNCTION seg_same(seg, seg) RETURNS bool
100-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
100+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
101101

102102
COMMENT ON FUNCTION seg_same(seg, seg) IS
103103
'same as';
104104

105105
CREATE FUNCTION seg_different(seg, seg) RETURNS bool
106-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
106+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
107107

108108
COMMENT ON FUNCTION seg_different(seg, seg) IS
109109
'different';
110110

111111
-- support routines for indexing
112112

113113
CREATE FUNCTION seg_union(seg, seg) RETURNS seg
114-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
114+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
115115

116116
CREATE FUNCTION seg_inter(seg, seg) RETURNS seg
117-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
117+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
118118

119119
CREATE FUNCTION seg_size(seg) RETURNS float4
120-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
120+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
121121

122122
-- miscellaneous
123123

124124
CREATE FUNCTION seg_upper(seg) RETURNS float4
125-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
125+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
126126

127127
CREATE FUNCTION seg_lower(seg) RETURNS float4
128-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
128+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
129129

130130

131131
--
@@ -223,7 +223,7 @@ CREATE FUNCTION gseg_decompress(opaque) RETURNS opaque
223223
AS 'MODULE_PATHNAME' LANGUAGE 'c';
224224

225225
CREATE FUNCTION gseg_penalty(opaque,opaque,opaque) RETURNS opaque
226-
AS 'MODULE_PATHNAME' LANGUAGE 'c';
226+
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
227227

228228
CREATE FUNCTION gseg_picksplit(opaque, opaque) RETURNS opaque
229229
AS 'MODULE_PATHNAME' LANGUAGE 'c';

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp