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

Commite29daa2

Browse files
committed
Merge commit '5971718872b2129511107c1724b73ec0147cd114' into PGPROEE9_6_ALPHA
2 parents7d05f96 +5971718 commite29daa2

File tree

9 files changed

+100
-93
lines changed

9 files changed

+100
-93
lines changed

‎contrib/rum/rum--1.0.sql‎

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ AS 'MODULE_PATHNAME', 'tsquery_to_distance_query'
1616
LANGUAGE C IMMUTABLE STRICT;
1717

1818
CREATE CAST (tsqueryAS rum_distance_query)
19-
WITH FUNCTION tsquery_to_distance_query(tsquery)AS IMPLICIT;
19+
WITH FUNCTION tsquery_to_distance_query(tsquery)AS IMPLICIT;
2020

2121
CREATEFUNCTIONrum_ts_distance(tsvector,tsquery)
2222
RETURNS float4
@@ -40,9 +40,9 @@ CREATE OPERATOR <=> (
4040
);
4141

4242
CREATE OPERATOR<=> (
43-
LEFTARG= tsvector,
44-
RIGHTARG= rum_distance_query,
45-
PROCEDURE= rum_ts_distance
43+
LEFTARG= tsvector,
44+
RIGHTARG= rum_distance_query,
45+
PROCEDURE= rum_ts_distance
4646
);
4747

4848
CREATEFUNCTIONrum_extract_tsvector(tsvector,internal,internal,internal,internal)
@@ -93,7 +93,7 @@ AS
9393
FUNCTION6 rum_tsvector_config(internal),
9494
FUNCTION7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
9595
FUNCTION8 rum_tsquery_distance(internal,smallint,tsvector,int,internal,internal,internal,internal,internal),
96-
FUNCTION10rum_ts_join_pos(internal, internal),
96+
FUNCTION10rum_ts_join_pos(internal, internal),
9797
STORAGEtext;
9898
-- timestamp ops
9999

@@ -103,10 +103,10 @@ AS 'MODULE_PATHNAME'
103103
LANGUAGE C IMMUTABLE STRICT;
104104

105105
CREATE OPERATOR<=> (
106-
PROCEDURE= timestamp_distance,
107-
LEFTARG=timestamp,
108-
RIGHTARG=timestamp,
109-
COMMUTATOR=<=>
106+
PROCEDURE= timestamp_distance,
107+
LEFTARG=timestamp,
108+
RIGHTARG=timestamp,
109+
COMMUTATOR=<=>
110110
);
111111

112112
CREATEFUNCTIONtimestamp_left_distance(timestamp,timestamp)
@@ -115,10 +115,10 @@ AS 'MODULE_PATHNAME'
115115
LANGUAGE C IMMUTABLE STRICT;
116116

117117
CREATE OPERATOR<=| (
118-
PROCEDURE= timestamp_left_distance,
119-
LEFTARG=timestamp,
120-
RIGHTARG=timestamp,
121-
COMMUTATOR= |=>
118+
PROCEDURE= timestamp_left_distance,
119+
LEFTARG=timestamp,
120+
RIGHTARG=timestamp,
121+
COMMUTATOR= |=>
122122
);
123123

124124
CREATEFUNCTIONtimestamp_right_distance(timestamp,timestamp)
@@ -127,10 +127,10 @@ AS 'MODULE_PATHNAME'
127127
LANGUAGE C IMMUTABLE STRICT;
128128

129129
CREATE OPERATOR |=> (
130-
PROCEDURE= timestamp_right_distance,
131-
LEFTARG=timestamp,
132-
RIGHTARG=timestamp,
133-
COMMUTATOR=<=|
130+
PROCEDURE= timestamp_right_distance,
131+
LEFTARG=timestamp,
132+
RIGHTARG=timestamp,
133+
COMMUTATOR=<=|
134134
);
135135

136136

@@ -169,23 +169,23 @@ LANGUAGE C STRICT IMMUTABLE;
169169
CREATEOPERATOR CLASStimestamp_ops
170170
DEFAULT FOR TYPEtimestamp USING rum
171171
AS
172-
OPERATOR1<,
173-
OPERATOR2<=,
174-
OPERATOR3=,
175-
OPERATOR4>=,
176-
OPERATOR5>,
177-
--support
178-
FUNCTION1 timestamp_cmp(timestamp,timestamp),
179-
FUNCTION2 rum_timestamp_extract_value(timestamp,internal,internal,internal,internal),
180-
FUNCTION3 rum_timestamp_extract_query(timestamp,internal,smallint,internal,internal,internal,internal),
181-
FUNCTION4 rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal),
182-
FUNCTION5 rum_timestamp_compare_prefix(timestamp,timestamp,smallint,internal),
183-
FUNCTION6 rum_timestamp_config(internal),
184-
-- support to timestamp disttance in rum_tsvector_timestamp_ops
185-
FUNCTION9 rum_timestamp_outer_distance(timestamp,timestamp,smallint),
186-
OPERATOR20<=> (timestamp,timestamp) FORORDER BYpg_catalog.float_ops,
187-
OPERATOR21<=| (timestamp,timestamp) FORORDER BYpg_catalog.float_ops,
188-
OPERATOR22|=> (timestamp,timestamp) FORORDER BYpg_catalog.float_ops,
172+
OPERATOR1<,
173+
OPERATOR2<=,
174+
OPERATOR3=,
175+
OPERATOR4>=,
176+
OPERATOR5>,
177+
--support
178+
FUNCTION1 timestamp_cmp(timestamp,timestamp),
179+
FUNCTION2 rum_timestamp_extract_value(timestamp,internal,internal,internal,internal),
180+
FUNCTION3 rum_timestamp_extract_query(timestamp,internal,smallint,internal,internal,internal,internal),
181+
FUNCTION4 rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal),
182+
FUNCTION5 rum_timestamp_compare_prefix(timestamp,timestamp,smallint,internal),
183+
FUNCTION6 rum_timestamp_config(internal),
184+
-- support to timestamp disttance in rum_tsvector_timestamp_ops
185+
FUNCTION9 rum_timestamp_outer_distance(timestamp,timestamp,smallint),
186+
OPERATOR20<=> (timestamp,timestamp) FORORDER BYpg_catalog.float_ops,
187+
OPERATOR21<=| (timestamp,timestamp) FORORDER BYpg_catalog.float_ops,
188+
OPERATOR22|=> (timestamp,timestamp) FORORDER BYpg_catalog.float_ops,
189189
STORAGEtimestamp;
190190

191191
--together
@@ -199,7 +199,7 @@ CREATE OPERATOR CLASS rum_tsvector_timestamp_ops
199199
FOR TYPE tsvector USING rum
200200
AS
201201
OPERATOR1 @@ (tsvector, tsquery),
202-
--support function
202+
--support function
203203
FUNCTION1 gin_cmp_tslexeme(text,text),
204204
FUNCTION2 rum_extract_tsvector(tsvector,internal,internal,internal,internal),
205205
FUNCTION3 rum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal),
@@ -216,10 +216,10 @@ AS 'MODULE_PATHNAME', 'timestamp_distance'
216216
LANGUAGE C IMMUTABLE STRICT;
217217

218218
CREATE OPERATOR<=> (
219-
PROCEDURE= timestamptz_distance,
220-
LEFTARG=timestamptz,
221-
RIGHTARG=timestamptz,
222-
COMMUTATOR=<=>
219+
PROCEDURE= timestamptz_distance,
220+
LEFTARG=timestamptz,
221+
RIGHTARG=timestamptz,
222+
COMMUTATOR=<=>
223223
);
224224

225225
CREATEFUNCTIONtimestamptz_left_distance(timestamptz,timestamptz)
@@ -228,10 +228,10 @@ AS 'MODULE_PATHNAME', 'timestamp_left_distance'
228228
LANGUAGE C IMMUTABLE STRICT;
229229

230230
CREATE OPERATOR<=| (
231-
PROCEDURE= timestamptz_left_distance,
232-
LEFTARG=timestamptz,
233-
RIGHTARG=timestamptz,
234-
COMMUTATOR= |=>
231+
PROCEDURE= timestamptz_left_distance,
232+
LEFTARG=timestamptz,
233+
RIGHTARG=timestamptz,
234+
COMMUTATOR= |=>
235235
);
236236

237237
CREATEFUNCTIONtimestamptz_right_distance(timestamptz,timestamptz)
@@ -240,33 +240,33 @@ AS 'MODULE_PATHNAME', 'timestamp_right_distance'
240240
LANGUAGE C IMMUTABLE STRICT;
241241

242242
CREATE OPERATOR |=> (
243-
PROCEDURE= timestamptz_right_distance,
244-
LEFTARG=timestamptz,
245-
RIGHTARG=timestamptz,
246-
COMMUTATOR=<=|
243+
PROCEDURE= timestamptz_right_distance,
244+
LEFTARG=timestamptz,
245+
RIGHTARG=timestamptz,
246+
COMMUTATOR=<=|
247247
);
248248

249249

250250
CREATEOPERATOR CLASStimestamptz_ops
251251
DEFAULT FOR TYPEtimestamptz USING rum
252252
AS
253-
OPERATOR1<,
254-
OPERATOR2<=,
255-
OPERATOR3=,
256-
OPERATOR4>=,
257-
OPERATOR5>,
258-
--support
259-
FUNCTION1 timestamptz_cmp(timestamptz,timestamptz),
260-
FUNCTION2 rum_timestamp_extract_value(timestamp,internal,internal,internal,internal),
261-
FUNCTION3 rum_timestamp_extract_query(timestamp,internal,smallint,internal,internal,internal,internal),
262-
FUNCTION4 rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal),
263-
FUNCTION5 rum_timestamp_compare_prefix(timestamp,timestamp,smallint,internal),
264-
FUNCTION6 rum_timestamp_config(internal),
265-
-- support to timestamptz disttance in rum_tsvector_timestamptz_ops
266-
FUNCTION9 rum_timestamp_outer_distance(timestamp,timestamp,smallint),
267-
OPERATOR20<=> (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
268-
OPERATOR21<=| (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
269-
OPERATOR22|=> (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
253+
OPERATOR1<,
254+
OPERATOR2<=,
255+
OPERATOR3=,
256+
OPERATOR4>=,
257+
OPERATOR5>,
258+
--support
259+
FUNCTION1 timestamptz_cmp(timestamptz,timestamptz),
260+
FUNCTION2 rum_timestamp_extract_value(timestamp,internal,internal,internal,internal),
261+
FUNCTION3 rum_timestamp_extract_query(timestamp,internal,smallint,internal,internal,internal,internal),
262+
FUNCTION4 rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal),
263+
FUNCTION5 rum_timestamp_compare_prefix(timestamp,timestamp,smallint,internal),
264+
FUNCTION6 rum_timestamp_config(internal),
265+
-- support to timestamptz disttance in rum_tsvector_timestamptz_ops
266+
FUNCTION9 rum_timestamp_outer_distance(timestamp,timestamp,smallint),
267+
OPERATOR20<=> (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
268+
OPERATOR21<=| (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
269+
OPERATOR22|=> (timestamptz,timestamptz) FORORDER BYpg_catalog.float_ops,
270270
STORAGEtimestamptz;
271271

272272
--together
@@ -275,7 +275,7 @@ CREATE OPERATOR CLASS rum_tsvector_timestamptz_ops
275275
FOR TYPE tsvector USING rum
276276
AS
277277
OPERATOR1 @@ (tsvector, tsquery),
278-
--support function
278+
--support function
279279
FUNCTION1 gin_cmp_tslexeme(text,text),
280280
FUNCTION2 rum_extract_tsvector(tsvector,internal,internal,internal,internal),
281281
FUNCTION3 rum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal),

‎contrib/rum/rum.h‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,14 +211,10 @@ typedef signed char RumNullCategory;
211211
#defineRumCategoryOffset(itup,rumstate) \
212212
(IndexInfoFindDataOffset((itup)->t_info) + \
213213
((rumstate)->oneCol ? 0 : sizeof(int16)))
214-
/*#define RumGetNullCategory(itup,rumstate) \
215-
(*((RumNullCategory *) ((char*)(itup) + RumCategoryOffset(itup,rumstate))))
216-
#define RumSetNullCategory(itup,rumstate,c) \
217-
(*((RumNullCategory *) ((char*)(itup) + RumCategoryOffset(itup,rumstate))) = (c))*/
218214

219-
#defineRumGetNullCategory(itup,rumstate) \
215+
#defineRumGetNullCategory(itup) \
220216
(*((RumNullCategory *) ((char*)(itup) + IndexTupleSize(itup) - sizeof(RumNullCategory))))
221-
#defineRumSetNullCategory(itup,rumstate,c) \
217+
#defineRumSetNullCategory(itup,c) \
222218
(*((RumNullCategory *) ((char*)(itup) + IndexTupleSize(itup) - sizeof(RumNullCategory))) = (c))
223219

224220
/*

‎contrib/rum/rum_ts_utils.c‎

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ PG_FUNCTION_INFO_V1(rum_ts_join_pos);
4040
PG_FUNCTION_INFO_V1(tsquery_to_distance_query);
4141

4242
staticintcount_pos(char*ptr,intlen);
43-
staticchar*decompress_pos(char*ptr,uint16*pos);
43+
staticchar*decompress_pos(char*ptr,WordEntryPos*pos);
4444

4545
typedefstruct
4646
{
@@ -317,7 +317,7 @@ rum_tsquery_timestamp_consistent(PG_FUNCTION_ARGS)
317317
#defineLOWERMASK 0x1F
318318

319319
staticint
320-
compress_pos(char*target,uint16*pos,intnpos)
320+
compress_pos(char*target,WordEntryPos*pos,intnpos)
321321
{
322322
inti;
323323
uint16prev=0,
@@ -350,7 +350,7 @@ compress_pos(char *target, uint16 *pos, int npos)
350350
}
351351

352352
staticchar*
353-
decompress_pos(char*ptr,uint16*pos)
353+
decompress_pos(char*ptr,WordEntryPos*pos)
354354
{
355355
inti;
356356
uint8v;
@@ -1319,23 +1319,24 @@ rum_tsvector_config(PG_FUNCTION_ARGS)
13191319
Datum
13201320
rum_ts_join_pos(PG_FUNCTION_ARGS)
13211321
{
1322-
DatumaddInfo1=PG_GETARG_DATUM(0);
1323-
DatumaddInfo2=PG_GETARG_DATUM(1);
1324-
char*in1=VARDATA_ANY(addInfo1),
1325-
*in2=VARDATA_ANY(addInfo2);
1326-
bytea*result;
1327-
intcount1=count_pos(in1,VARSIZE_ANY_EXHDR(addInfo1)),
1328-
count2=count_pos(in2,VARSIZE_ANY_EXHDR(addInfo2)),
1329-
countRes=0,
1330-
i1=0,i2=0,size;
1331-
uint16pos1,pos2,*pos;
1332-
1333-
result=palloc(VARHDRSZ+sizeof(uint16)* (count1+count2));
1334-
pos=palloc(sizeof(uint16)* (count1+count2));
1322+
DatumaddInfo1=PG_GETARG_DATUM(0);
1323+
DatumaddInfo2=PG_GETARG_DATUM(1);
1324+
char*in1=VARDATA_ANY(addInfo1),
1325+
*in2=VARDATA_ANY(addInfo2);
1326+
bytea*result;
1327+
intcount1=count_pos(in1,VARSIZE_ANY_EXHDR(addInfo1)),
1328+
count2=count_pos(in2,VARSIZE_ANY_EXHDR(addInfo2)),
1329+
countRes=0,
1330+
i1=0,i2=0,size;
1331+
WordEntryPospos1=0,
1332+
pos2=0,
1333+
*pos;
1334+
1335+
result=palloc(VARHDRSZ+sizeof(WordEntryPos)* (count1+count2));
1336+
pos=palloc(sizeof(WordEntryPos)* (count1+count2));
13351337

13361338
Assert(count1>0&&count2>0);
13371339

1338-
13391340
in1=decompress_pos(in1,&pos1);
13401341
in2=decompress_pos(in2,&pos2);
13411342

‎contrib/rum/rumentrypage.c‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ static IndexTuple
6868
RumFormInteriorTuple(IndexTupleitup,Pagepage,BlockNumberchildblk)
6969
{
7070
IndexTuplenitup;
71+
RumNullCategorycategory;
7172

7273
if (RumPageIsLeaf(page)&& !RumIsPostingTree(itup))
7374
{
@@ -91,6 +92,14 @@ RumFormInteriorTuple(IndexTuple itup, Page page, BlockNumber childblk)
9192
/* Now insert the correct downlink */
9293
RumSetDownlink(nitup,childblk);
9394

95+
category=RumGetNullCategory(itup);
96+
if (category==RUM_CAT_NULL_KEY||category==RUM_CAT_EMPTY_ITEM||
97+
category==RUM_CAT_NULL_ITEM)
98+
{
99+
nitup->t_info |=INDEX_NULL_MASK;
100+
RumSetNullCategory(nitup,category);
101+
}
102+
94103
returnnitup;
95104
}
96105

‎contrib/rum/rumfast.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ RumFastFormTuple(RumState * rumstate,
421421
if (category!=RUM_CAT_NORM_KEY)
422422
{
423423
Assert(IndexTupleHasNulls(itup));
424-
RumSetNullCategory(itup,rumstate,category);
424+
RumSetNullCategory(itup,category);
425425
}
426426

427427
returnitup;

‎contrib/rum/ruminsert.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ RumFormTuple(RumState * rumstate,
227227
if (category!=RUM_CAT_NORM_KEY)
228228
{
229229
Assert(IndexTupleHasNulls(itup));
230-
RumSetNullCategory(itup,rumstate,category);
230+
RumSetNullCategory(itup,category);
231231
}
232232

233233
returnitup;

‎contrib/rum/rumutil.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ rumtuple_get_key(RumState * rumstate, IndexTuple tuple,
419419
}
420420

421421
if (isnull)
422-
*category=RumGetNullCategory(tuple,rumstate);
422+
*category=RumGetNullCategory(tuple);
423423
else
424424
*category=RUM_CAT_NORM_KEY;
425425

‎contrib/rum/rumvacuum.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ RumFormTuple(RumState * rumstate,
203203
if (category!=RUM_CAT_NORM_KEY)
204204
{
205205
Assert(IndexTupleHasNulls(itup));
206-
RumSetNullCategory(itup,rumstate,category);
206+
RumSetNullCategory(itup,category);
207207
}
208208
returnitup;
209209
}

‎contrib/rum/rumvalidate.c‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,8 @@ rumvalidate(Oid opclassoid)
160160
opcintype,opcintype,INT2OID);
161161
break;
162162
caseRUM_ADDINFO_JOIN:
163-
ok= true;/* XXX */
163+
ok=check_amproc_signature(procform->amproc,BYTEAOID, false,
164+
2,2,opckeytype,opckeytype);
164165
break;
165166
default:
166167
ereport(INFO,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp