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

Commitf515bc5

Browse files
author
Zakirov Artur
committed
Added more comments in .sql, added rum_ suffixes for SQL functions
1 parent1d7a399 commitf515bc5

File tree

2 files changed

+113
-74
lines changed

2 files changed

+113
-74
lines changed

‎rum--1.0.sql

Lines changed: 104 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,17 @@ RETURNS index_am_handler
33
AS'MODULE_PATHNAME'
44
LANGUAGE C;
55

6-
-- Access method
6+
/*
7+
* RUM access method
8+
*/
9+
710
CREATE ACCESS METHOD rum TYPE INDEX HANDLER rumhandler;
811

9-
-- tsvector opclasses
12+
/*
13+
* RUM built-in types, operators and functions
14+
*/
1015

16+
-- Type used in distance calculations with normalization argument
1117
CREATETYPErum_distance_queryAS (query tsquery, methodint);
1218

1319
CREATEFUNCTIONtsquery_to_distance_query(tsquery)
@@ -45,22 +51,52 @@ CREATE OPERATOR <=> (
4551
PROCEDURE= rum_ts_distance
4652
);
4753

48-
CREATEFUNCTIONrum_extract_tsvector(tsvector,internal,internal,internal,internal)
49-
RETURNSinternal
54+
CREATEFUNCTIONrum_timestamp_distance(timestamp,timestamp)
55+
RETURNSfloat8
5056
AS'MODULE_PATHNAME'
5157
LANGUAGE C IMMUTABLE STRICT;
5258

53-
CREATEFUNCTIONrum_extract_tsvector_hash(tsvector,internal,internal,internal,internal)
54-
RETURNS internal
59+
CREATE OPERATOR<=> (
60+
PROCEDURE= rum_timestamp_distance,
61+
LEFTARG=timestamp,
62+
RIGHTARG=timestamp,
63+
COMMUTATOR=<=>
64+
);
65+
66+
CREATEFUNCTIONrum_timestamp_left_distance(timestamp,timestamp)
67+
RETURNS float8
5568
AS'MODULE_PATHNAME'
5669
LANGUAGE C IMMUTABLE STRICT;
5770

58-
CREATEFUNCTIONrum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal)
71+
CREATE OPERATOR<=| (
72+
PROCEDURE= rum_timestamp_left_distance,
73+
LEFTARG=timestamp,
74+
RIGHTARG=timestamp,
75+
COMMUTATOR= |=>
76+
);
77+
78+
CREATEFUNCTIONrum_timestamp_right_distance(timestamp,timestamp)
79+
RETURNS float8
80+
AS'MODULE_PATHNAME'
81+
LANGUAGE C IMMUTABLE STRICT;
82+
83+
CREATE OPERATOR |=> (
84+
PROCEDURE= rum_timestamp_right_distance,
85+
LEFTARG=timestamp,
86+
RIGHTARG=timestamp,
87+
COMMUTATOR=<=|
88+
);
89+
90+
/*
91+
* rum_tsvector_ops operator class
92+
*/
93+
94+
CREATEFUNCTIONrum_extract_tsvector(tsvector,internal,internal,internal,internal)
5995
RETURNS internal
6096
AS'MODULE_PATHNAME'
6197
LANGUAGE C IMMUTABLE STRICT;
6298

63-
CREATEFUNCTIONrum_extract_tsquery_hash(tsquery,internal,smallint,internal,internal,internal,internal)
99+
CREATEFUNCTIONrum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal)
64100
RETURNS internal
65101
AS'MODULE_PATHNAME'
66102
LANGUAGE C IMMUTABLE STRICT;
@@ -85,13 +121,14 @@ RETURNS float8
85121
AS'MODULE_PATHNAME'
86122
LANGUAGE C IMMUTABLE STRICT;
87123

88-
CREATEFUNCTIONrum_ts_join_pos(internal, internal)-- to prevent calling from SQL
124+
-- To prevent calling from SQL
125+
CREATEFUNCTIONrum_ts_join_pos(internal, internal)
89126
RETURNSbytea
90127
AS'MODULE_PATHNAME'
91128
LANGUAGE C IMMUTABLE STRICT;
92129

93130
CREATEOPERATOR CLASSrum_tsvector_ops
94-
FOR TYPE tsvector USING rum
131+
DEFAULTFOR TYPE tsvector USING rum
95132
AS
96133
OPERATOR1 @@ (tsvector, tsquery),
97134
OPERATOR2<=> (tsvector, tsquery) FORORDER BYpg_catalog.float_ops,
@@ -106,6 +143,22 @@ AS
106143
FUNCTION10 rum_ts_join_pos(internal, internal),
107144
STORAGEtext;
108145

146+
/*
147+
* rum_tsvector_hash_ops operator class.
148+
*
149+
* Stores hash of entries as keys in index.
150+
*/
151+
152+
CREATEFUNCTIONrum_extract_tsvector_hash(tsvector,internal,internal,internal,internal)
153+
RETURNS internal
154+
AS'MODULE_PATHNAME'
155+
LANGUAGE C IMMUTABLE STRICT;
156+
157+
CREATEFUNCTIONrum_extract_tsquery_hash(tsquery,internal,smallint,internal,internal,internal,internal)
158+
RETURNS internal
159+
AS'MODULE_PATHNAME'
160+
LANGUAGE C IMMUTABLE STRICT;
161+
109162
CREATEOPERATOR CLASSrum_tsvector_hash_ops
110163
FOR TYPE tsvector USING rum
111164
AS
@@ -120,44 +173,10 @@ AS
120173
FUNCTION8 rum_tsquery_distance(internal,smallint,tsvector,int,internal,internal,internal,internal,internal),
121174
FUNCTION10 rum_ts_join_pos(internal, internal),
122175
STORAGEinteger;
123-
-- timestamp ops
124-
125-
CREATEFUNCTIONtimestamp_distance(timestamp,timestamp)
126-
RETURNS float8
127-
AS'MODULE_PATHNAME'
128-
LANGUAGE C IMMUTABLE STRICT;
129-
130-
CREATE OPERATOR<=> (
131-
PROCEDURE= timestamp_distance,
132-
LEFTARG=timestamp,
133-
RIGHTARG=timestamp,
134-
COMMUTATOR=<=>
135-
);
136-
137-
CREATEFUNCTIONtimestamp_left_distance(timestamp,timestamp)
138-
RETURNS float8
139-
AS'MODULE_PATHNAME'
140-
LANGUAGE C IMMUTABLE STRICT;
141-
142-
CREATE OPERATOR<=| (
143-
PROCEDURE= timestamp_left_distance,
144-
LEFTARG=timestamp,
145-
RIGHTARG=timestamp,
146-
COMMUTATOR= |=>
147-
);
148-
149-
CREATEFUNCTIONtimestamp_right_distance(timestamp,timestamp)
150-
RETURNS float8
151-
AS'MODULE_PATHNAME'
152-
LANGUAGE C IMMUTABLE STRICT;
153-
154-
CREATE OPERATOR |=> (
155-
PROCEDURE= timestamp_right_distance,
156-
LEFTARG=timestamp,
157-
RIGHTARG=timestamp,
158-
COMMUTATOR=<=|
159-
);
160176

177+
/*
178+
* rum_timestamp_ops operator class
179+
*/
161180

162181
-- timestamp operator class
163182

@@ -191,7 +210,7 @@ RETURNS float8
191210
AS'MODULE_PATHNAME'
192211
LANGUAGE C STRICT IMMUTABLE;
193212

194-
CREATEOPERATOR CLASStimestamp_ops
213+
CREATEOPERATOR CLASSrum_timestamp_ops
195214
DEFAULT FOR TYPEtimestamp USING rum
196215
AS
197216
OPERATOR1<,
@@ -213,7 +232,11 @@ AS
213232
OPERATOR22 |=> (timestamp,timestamp) FORORDER BYpg_catalog.float_ops,
214233
STORAGEtimestamp;
215234

216-
--together
235+
/*
236+
* rum_tsvector_timestamp_ops operator class.
237+
*
238+
* Stores timestamp with tsvector.
239+
*/
217240

218241
CREATEFUNCTIONrum_tsquery_timestamp_consistent(internal,smallint, tsvector,integer, internal, internal, internal, internal)
219242
RETURNS bool
@@ -233,6 +256,10 @@ AS
233256
FUNCTION7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
234257
STORAGEtext;
235258

259+
/*
260+
* rum_tsvector_hash_timestamp_ops operator class
261+
*/
262+
236263
CREATEOPERATOR CLASSrum_tsvector_hash_timestamp_ops
237264
FOR TYPE tsvector USING rum
238265
AS
@@ -245,46 +272,47 @@ AS
245272
FUNCTION7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
246273
STORAGEinteger;
247274

248-
-- timestamptz ops
275+
/*
276+
* rum_timestamptz_ops operator class
277+
*/
249278

250-
CREATEFUNCTIONtimestamptz_distance(timestamptz,timestamptz)
279+
CREATEFUNCTIONrum_timestamptz_distance(timestamptz,timestamptz)
251280
RETURNS float8
252-
AS'MODULE_PATHNAME','timestamp_distance'
281+
AS'MODULE_PATHNAME','rum_timestamp_distance'
253282
LANGUAGE C IMMUTABLE STRICT;
254283

255284
CREATE OPERATOR<=> (
256-
PROCEDURE=timestamptz_distance,
285+
PROCEDURE=rum_timestamptz_distance,
257286
LEFTARG=timestamptz,
258287
RIGHTARG=timestamptz,
259288
COMMUTATOR=<=>
260289
);
261290

262-
CREATEFUNCTIONtimestamptz_left_distance(timestamptz,timestamptz)
291+
CREATEFUNCTIONrum_timestamptz_left_distance(timestamptz,timestamptz)
263292
RETURNS float8
264-
AS'MODULE_PATHNAME','timestamp_left_distance'
293+
AS'MODULE_PATHNAME','rum_timestamp_left_distance'
265294
LANGUAGE C IMMUTABLE STRICT;
266295

267296
CREATE OPERATOR<=| (
268-
PROCEDURE=timestamptz_left_distance,
297+
PROCEDURE=rum_timestamptz_left_distance,
269298
LEFTARG=timestamptz,
270299
RIGHTARG=timestamptz,
271300
COMMUTATOR= |=>
272301
);
273302

274-
CREATEFUNCTIONtimestamptz_right_distance(timestamptz,timestamptz)
303+
CREATEFUNCTIONrum_timestamptz_right_distance(timestamptz,timestamptz)
275304
RETURNS float8
276-
AS'MODULE_PATHNAME','timestamp_right_distance'
305+
AS'MODULE_PATHNAME','rum_timestamp_right_distance'
277306
LANGUAGE C IMMUTABLE STRICT;
278307

279308
CREATE OPERATOR |=> (
280-
PROCEDURE=timestamptz_right_distance,
309+
PROCEDURE=rum_timestamptz_right_distance,
281310
LEFTARG=timestamptz,
282311
RIGHTARG=timestamptz,
283312
COMMUTATOR=<=|
284313
);
285314

286-
287-
CREATEOPERATOR CLASStimestamptz_ops
315+
CREATEOPERATOR CLASSrum_timestamptz_ops
288316
DEFAULT FOR TYPEtimestamptz USING rum
289317
AS
290318
OPERATOR1<,
@@ -299,14 +327,18 @@ AS
299327
FUNCTION4 rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal),
300328
FUNCTION5 rum_timestamp_compare_prefix(timestamp,timestamp,smallint,internal),
301329
FUNCTION6 rum_timestamp_config(internal),
302-
-- support to timestamptzdisttance in rum_tsvector_timestamptz_ops
330+
-- support to timestamptzdistance in rum_tsvector_timestamptz_ops
303331
FUNCTION9 rum_timestamp_outer_distance(timestamp,timestamp,smallint),
304332
OPERATOR20<=> (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
305333
OPERATOR21<=| (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
306334
OPERATOR22 |=> (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
307335
STORAGEtimestamptz;
308336

309-
--together
337+
/*
338+
* rum_tsvector_timestamptz_ops operator class.
339+
*
340+
* Stores tsvector with timestamptz.
341+
*/
310342

311343
CREATEOPERATOR CLASSrum_tsvector_timestamptz_ops
312344
FOR TYPE tsvector USING rum
@@ -321,6 +353,10 @@ AS
321353
FUNCTION7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
322354
STORAGEtext;
323355

356+
/*
357+
* rum_tsvector_hash_timestamptz_ops operator class
358+
*/
359+
324360
CREATEOPERATOR CLASSrum_tsvector_hash_timestamptz_ops
325361
FOR TYPE tsvector USING rum
326362
AS
@@ -333,7 +369,11 @@ AS
333369
FUNCTION7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
334370
STORAGEinteger;
335371

336-
-- inversed
372+
/*
373+
* rum_tsquery_ops operator class.
374+
*
375+
* Used for inversed text search.
376+
*/
337377

338378
CREATEFUNCTIONruminv_extract_tsquery(tsquery,internal,internal,internal,internal)
339379
RETURNS internal
@@ -365,4 +405,3 @@ AS
365405
FUNCTION4 ruminv_tsvector_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
366406
FUNCTION6 ruminv_tsquery_config(internal),
367407
STORAGEtext;
368-

‎rum_timestamp.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,9 @@ rum_timestamp_consistent(PG_FUNCTION_ARGS)
149149
PG_RETURN_BOOL(true);
150150
}
151151

152-
PG_FUNCTION_INFO_V1(timestamp_distance);
152+
PG_FUNCTION_INFO_V1(rum_timestamp_distance);
153153
Datum
154-
timestamp_distance(PG_FUNCTION_ARGS)
154+
rum_timestamp_distance(PG_FUNCTION_ARGS)
155155
{
156156
Timestampdt1=PG_GETARG_TIMESTAMP(0);
157157
Timestampdt2=PG_GETARG_TIMESTAMP(1);
@@ -174,9 +174,9 @@ timestamp_distance(PG_FUNCTION_ARGS)
174174
PG_RETURN_FLOAT8(diff);
175175
}
176176

177-
PG_FUNCTION_INFO_V1(timestamp_left_distance);
177+
PG_FUNCTION_INFO_V1(rum_timestamp_left_distance);
178178
Datum
179-
timestamp_left_distance(PG_FUNCTION_ARGS)
179+
rum_timestamp_left_distance(PG_FUNCTION_ARGS)
180180
{
181181
Timestampdt1=PG_GETARG_TIMESTAMP(0);
182182
Timestampdt2=PG_GETARG_TIMESTAMP(1);
@@ -199,9 +199,9 @@ timestamp_left_distance(PG_FUNCTION_ARGS)
199199
PG_RETURN_FLOAT8(diff);
200200
}
201201

202-
PG_FUNCTION_INFO_V1(timestamp_right_distance);
202+
PG_FUNCTION_INFO_V1(rum_timestamp_right_distance);
203203
Datum
204-
timestamp_right_distance(PG_FUNCTION_ARGS)
204+
rum_timestamp_right_distance(PG_FUNCTION_ARGS)
205205
{
206206
Timestampdt1=PG_GETARG_TIMESTAMP(0);
207207
Timestampdt2=PG_GETARG_TIMESTAMP(1);
@@ -234,17 +234,17 @@ rum_timestamp_outer_distance(PG_FUNCTION_ARGS)
234234
switch (strategy)
235235
{
236236
caseRUM_TMST_DISTANCE:
237-
diff=DirectFunctionCall2(timestamp_distance,
237+
diff=DirectFunctionCall2(rum_timestamp_distance,
238238
PG_GETARG_DATUM(0),
239239
PG_GETARG_DATUM(1));
240240
break;
241241
caseRUM_TMST_LEFT_DISTANCE:
242-
diff=DirectFunctionCall2(timestamp_left_distance,
242+
diff=DirectFunctionCall2(rum_timestamp_left_distance,
243243
PG_GETARG_DATUM(0),
244244
PG_GETARG_DATUM(1));
245245
break;
246246
caseRUM_TMST_RIGHT_DISTANCE:
247-
diff=DirectFunctionCall2(timestamp_right_distance,
247+
diff=DirectFunctionCall2(rum_timestamp_right_distance,
248248
PG_GETARG_DATUM(0),
249249
PG_GETARG_DATUM(1));
250250
break;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp