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

Commit97ec950

Browse files
committed
Update btree_gist for CIDR/INET changes --- there's really no need to
have a separate set of CIDR code here, either.
1 parent3125321 commit97ec950

File tree

2 files changed

+17
-77
lines changed

2 files changed

+17
-77
lines changed

‎contrib/btree_gist/btree_gist.sql.in

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,21 +1126,11 @@ RETURNS bool
11261126
AS 'MODULE_PATHNAME'
11271127
LANGUAGE 'C';
11281128

1129-
CREATE FUNCTION gbt_cidr_consistent(internal,cidr,int2)
1130-
RETURNS bool
1131-
AS 'MODULE_PATHNAME'
1132-
LANGUAGE 'C';
1133-
11341129
CREATE FUNCTION gbt_inet_compress(internal)
11351130
RETURNS internal
11361131
AS 'MODULE_PATHNAME'
11371132
LANGUAGE 'C';
11381133

1139-
CREATE FUNCTION gbt_cidr_compress(internal)
1140-
RETURNS internal
1141-
AS 'MODULE_PATHNAME'
1142-
LANGUAGE 'C';
1143-
11441134
CREATE FUNCTION gbt_inet_penalty(internal,internal,internal)
11451135
RETURNS internal
11461136
AS 'MODULE_PATHNAME'
@@ -1183,12 +1173,12 @@ AS
11831173
CREATE OPERATOR CLASS gist_cidr_ops
11841174
DEFAULT FOR TYPE cidr USING gist
11851175
AS
1186-
OPERATOR1< RECHECK ,
1187-
OPERATOR2<= RECHECK ,
1188-
OPERATOR3= RECHECK ,
1189-
OPERATOR4>= RECHECK ,
1190-
OPERATOR5> RECHECK ,
1191-
FUNCTION1gbt_cidr_consistent (internal,cidr, int2),
1176+
OPERATOR1<(inet, inet) RECHECK ,
1177+
OPERATOR2<=(inet, inet) RECHECK ,
1178+
OPERATOR3=(inet, inet) RECHECK ,
1179+
OPERATOR4>=(inet, inet) RECHECK ,
1180+
OPERATOR5>(inet, inet) RECHECK ,
1181+
FUNCTION1gbt_inet_consistent (internal,inet, int2),
11921182
FUNCTION2gbt_inet_union (bytea, internal),
11931183
FUNCTION3gbt_inet_compress (internal),
11941184
FUNCTION4gbt_decompress (internal),

‎contrib/btree_gist/btree_inet.c

Lines changed: 11 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,16 @@ typedef struct inetkey
1414
** inet ops
1515
*/
1616
PG_FUNCTION_INFO_V1(gbt_inet_compress);
17-
PG_FUNCTION_INFO_V1(gbt_cidr_compress);
1817
PG_FUNCTION_INFO_V1(gbt_inet_union);
1918
PG_FUNCTION_INFO_V1(gbt_inet_picksplit);
2019
PG_FUNCTION_INFO_V1(gbt_inet_consistent);
21-
PG_FUNCTION_INFO_V1(gbt_cidr_consistent);
2220
PG_FUNCTION_INFO_V1(gbt_inet_penalty);
2321
PG_FUNCTION_INFO_V1(gbt_inet_same);
2422

2523
Datumgbt_inet_compress(PG_FUNCTION_ARGS);
26-
Datumgbt_cidr_compress(PG_FUNCTION_ARGS);
2724
Datumgbt_inet_union(PG_FUNCTION_ARGS);
2825
Datumgbt_inet_picksplit(PG_FUNCTION_ARGS);
2926
Datumgbt_inet_consistent(PG_FUNCTION_ARGS);
30-
Datumgbt_cidr_consistent(PG_FUNCTION_ARGS);
3127
Datumgbt_inet_penalty(PG_FUNCTION_ARGS);
3228
Datumgbt_inet_same(PG_FUNCTION_ARGS);
3329

@@ -89,17 +85,18 @@ static const gbtree_ninfo tinfo =
8985
**************************************************/
9086

9187

92-
93-
staticGISTENTRY*
94-
gbt_inet_compress_inetrnal(GISTENTRY*retval,GISTENTRY*entry,Oidtypid)
88+
Datum
89+
gbt_inet_compress(PG_FUNCTION_ARGS)
9590
{
91+
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
92+
GISTENTRY*retval;
9693

9794
if (entry->leafkey)
9895
{
9996
inetKEY*r= (inetKEY*)palloc(sizeof(inetKEY));
10097

10198
retval=palloc(sizeof(GISTENTRY));
102-
r->lower=convert_network_to_scalar(entry->key,typid);
99+
r->lower=convert_network_to_scalar(entry->key,INETOID);
103100
r->upper=r->lower;
104101
gistentryinit(*retval,PointerGetDatum(r),
105102
entry->rel,entry->page,
@@ -108,71 +105,24 @@ gbt_inet_compress_inetrnal(GISTENTRY *retval, GISTENTRY *entry, Oid typid)
108105
else
109106
retval=entry;
110107

111-
return(retval);
108+
PG_RETURN_POINTER(retval);
112109
}
113110

114111

115-
116112
Datum
117-
gbt_inet_compress(PG_FUNCTION_ARGS)
118-
{
119-
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
120-
GISTENTRY*retval=NULL;
121-
122-
PG_RETURN_POINTER(gbt_inet_compress_inetrnal(retval,entry,INETOID));
123-
}
124-
125-
Datum
126-
gbt_cidr_compress(PG_FUNCTION_ARGS)
113+
gbt_inet_consistent(PG_FUNCTION_ARGS)
127114
{
128115
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
129-
GISTENTRY*retval=NULL;
130-
131-
PG_RETURN_POINTER(gbt_inet_compress_inetrnal(retval,entry,CIDROID));
132-
}
133-
134-
135-
staticbool
136-
gbt_inet_consistent_internal(
137-
constGISTENTRY*entry,
138-
constdouble*query,
139-
constStrategyNumber*strategy
140-
)
141-
{
116+
doublequery=convert_network_to_scalar(PG_GETARG_DATUM(1),INETOID);
117+
StrategyNumberstrategy= (StrategyNumber)PG_GETARG_UINT16(2);
142118
inetKEY*kkk= (inetKEY*)DatumGetPointer(entry->key);
143119
GBT_NUMKEY_Rkey;
144120

145121
key.lower= (GBT_NUMKEY*)&kkk->lower;
146122
key.upper= (GBT_NUMKEY*)&kkk->upper;
147123

148-
return (
149-
gbt_num_consistent(&key, (void*)query,strategy,GIST_LEAF(entry),&tinfo)
150-
);
151-
}
152-
153-
154-
Datum
155-
gbt_inet_consistent(PG_FUNCTION_ARGS)
156-
{
157-
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
158-
doublequery=convert_network_to_scalar(PG_GETARG_DATUM(1),INETOID);
159-
StrategyNumberstrategy= (StrategyNumber)PG_GETARG_UINT16(2);
160-
161-
PG_RETURN_BOOL(
162-
gbt_inet_consistent_internal(entry,&query,&strategy)
163-
);
164-
}
165-
166-
Datum
167-
gbt_cidr_consistent(PG_FUNCTION_ARGS)
168-
{
169-
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
170-
doublequery=convert_network_to_scalar(PG_GETARG_DATUM(1),CIDROID);
171-
StrategyNumberstrategy= (StrategyNumber)PG_GETARG_UINT16(2);
172-
173-
PG_RETURN_BOOL(
174-
gbt_inet_consistent_internal(entry,&query,&strategy)
175-
);
124+
PG_RETURN_BOOL(gbt_num_consistent(&key, (void*)&query,
125+
&strategy,GIST_LEAF(entry),&tinfo));
176126
}
177127

178128

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp