@@ -14,20 +14,16 @@ typedef struct inetkey
1414** inet ops
1515*/
1616PG_FUNCTION_INFO_V1 (gbt_inet_compress );
17- PG_FUNCTION_INFO_V1 (gbt_cidr_compress );
1817PG_FUNCTION_INFO_V1 (gbt_inet_union );
1918PG_FUNCTION_INFO_V1 (gbt_inet_picksplit );
2019PG_FUNCTION_INFO_V1 (gbt_inet_consistent );
21- PG_FUNCTION_INFO_V1 (gbt_cidr_consistent );
2220PG_FUNCTION_INFO_V1 (gbt_inet_penalty );
2321PG_FUNCTION_INFO_V1 (gbt_inet_same );
2422
2523Datum gbt_inet_compress (PG_FUNCTION_ARGS );
26- Datum gbt_cidr_compress (PG_FUNCTION_ARGS );
2724Datum gbt_inet_union (PG_FUNCTION_ARGS );
2825Datum gbt_inet_picksplit (PG_FUNCTION_ARGS );
2926Datum gbt_inet_consistent (PG_FUNCTION_ARGS );
30- Datum gbt_cidr_consistent (PG_FUNCTION_ARGS );
3127Datum gbt_inet_penalty (PG_FUNCTION_ARGS );
3228Datum gbt_inet_same (PG_FUNCTION_ARGS );
3329
@@ -89,17 +85,18 @@ static const gbtree_ninfo tinfo =
8985 **************************************************/
9086
9187
92-
93- static GISTENTRY *
94- gbt_inet_compress_inetrnal (GISTENTRY * retval ,GISTENTRY * entry ,Oid typid )
88+ Datum
89+ gbt_inet_compress (PG_FUNCTION_ARGS )
9590{
91+ GISTENTRY * entry = (GISTENTRY * )PG_GETARG_POINTER (0 );
92+ GISTENTRY * retval ;
9693
9794if (entry -> leafkey )
9895{
9996inetKEY * r = (inetKEY * )palloc (sizeof (inetKEY ));
10097
10198retval = palloc (sizeof (GISTENTRY ));
102- r -> lower = convert_network_to_scalar (entry -> key ,typid );
99+ r -> lower = convert_network_to_scalar (entry -> key ,INETOID );
103100r -> upper = r -> lower ;
104101gistentryinit (* retval ,PointerGetDatum (r ),
105102entry -> rel ,entry -> page ,
@@ -108,71 +105,24 @@ gbt_inet_compress_inetrnal(GISTENTRY *retval, GISTENTRY *entry, Oid typid)
108105else
109106retval = entry ;
110107
111- return (retval );
108+ PG_RETURN_POINTER (retval );
112109}
113110
114111
115-
116112Datum
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{
128115GISTENTRY * 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- static bool
136- gbt_inet_consistent_internal (
137- const GISTENTRY * entry ,
138- const double * query ,
139- const StrategyNumber * strategy
140- )
141- {
116+ double query = convert_network_to_scalar (PG_GETARG_DATUM (1 ),INETOID );
117+ StrategyNumber strategy = (StrategyNumber )PG_GETARG_UINT16 (2 );
142118inetKEY * kkk = (inetKEY * )DatumGetPointer (entry -> key );
143119GBT_NUMKEY_R key ;
144120
145121key .lower = (GBT_NUMKEY * )& kkk -> lower ;
146122key .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- double query = convert_network_to_scalar (PG_GETARG_DATUM (1 ),INETOID );
159- StrategyNumber strategy = (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- double query = convert_network_to_scalar (PG_GETARG_DATUM (1 ),CIDROID );
171- StrategyNumber strategy = (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