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

Commite09b483

Browse files
committed
Add index-only scan support to btree_gist.
inet, cidr, and timetz indexes still cannot support index-only scans,because they don't store the original unmodified value in the index, but aderived approximate value.
1 parent735cd61 commite09b483

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+614
-51
lines changed

‎contrib/btree_gist/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ OBJS = btree_gist.o btree_utils_num.o btree_utils_var.o btree_int2.o \
99
btree_numeric.o$(WIN32RES)
1010

1111
EXTENSION = btree_gist
12-
DATA = btree_gist--1.0.sql btree_gist--unpackaged--1.0.sql
12+
DATA = btree_gist--1.1.sql btree_gist--unpackaged--1.0.sql\
13+
btree_gist--1.0--1.1.sql
1314
PGFILEDESC = "btree_gist - B-tree equivalent GIST operator classes"
1415

1516
REGRESS = init int2 int4 int8 float4 float8 cash oid timestamp timestamptz\

‎contrib/btree_gist/btree_cash.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ typedef struct
1717
** Cash ops
1818
*/
1919
PG_FUNCTION_INFO_V1(gbt_cash_compress);
20+
PG_FUNCTION_INFO_V1(gbt_cash_fetch);
2021
PG_FUNCTION_INFO_V1(gbt_cash_union);
2122
PG_FUNCTION_INFO_V1(gbt_cash_picksplit);
2223
PG_FUNCTION_INFO_V1(gbt_cash_consistent);
@@ -123,6 +124,13 @@ gbt_cash_compress(PG_FUNCTION_ARGS)
123124
PG_RETURN_POINTER(gbt_num_compress(entry,&tinfo));
124125
}
125126

127+
Datum
128+
gbt_cash_fetch(PG_FUNCTION_ARGS)
129+
{
130+
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
131+
132+
PG_RETURN_POINTER(gbt_num_fetch(entry,&tinfo));
133+
}
126134

127135
Datum
128136
gbt_cash_consistent(PG_FUNCTION_ARGS)

‎contrib/btree_gist/btree_date.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ typedef struct
1717
** date ops
1818
*/
1919
PG_FUNCTION_INFO_V1(gbt_date_compress);
20+
PG_FUNCTION_INFO_V1(gbt_date_fetch);
2021
PG_FUNCTION_INFO_V1(gbt_date_union);
2122
PG_FUNCTION_INFO_V1(gbt_date_picksplit);
2223
PG_FUNCTION_INFO_V1(gbt_date_consistent);
@@ -134,7 +135,13 @@ gbt_date_compress(PG_FUNCTION_ARGS)
134135
PG_RETURN_POINTER(gbt_num_compress(entry,&tinfo));
135136
}
136137

138+
Datum
139+
gbt_date_fetch(PG_FUNCTION_ARGS)
140+
{
141+
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
137142

143+
PG_RETURN_POINTER(gbt_num_fetch(entry,&tinfo));
144+
}
138145

139146
Datum
140147
gbt_date_consistent(PG_FUNCTION_ARGS)

‎contrib/btree_gist/btree_float4.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ typedef struct float4key
1616
** float4 ops
1717
*/
1818
PG_FUNCTION_INFO_V1(gbt_float4_compress);
19+
PG_FUNCTION_INFO_V1(gbt_float4_fetch);
1920
PG_FUNCTION_INFO_V1(gbt_float4_union);
2021
PG_FUNCTION_INFO_V1(gbt_float4_picksplit);
2122
PG_FUNCTION_INFO_V1(gbt_float4_consistent);
@@ -116,6 +117,13 @@ gbt_float4_compress(PG_FUNCTION_ARGS)
116117
PG_RETURN_POINTER(gbt_num_compress(entry,&tinfo));
117118
}
118119

120+
Datum
121+
gbt_float4_fetch(PG_FUNCTION_ARGS)
122+
{
123+
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
124+
125+
PG_RETURN_POINTER(gbt_num_fetch(entry,&tinfo));
126+
}
119127

120128
Datum
121129
gbt_float4_consistent(PG_FUNCTION_ARGS)

‎contrib/btree_gist/btree_float8.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ typedef struct float8key
1616
** float8 ops
1717
*/
1818
PG_FUNCTION_INFO_V1(gbt_float8_compress);
19+
PG_FUNCTION_INFO_V1(gbt_float8_fetch);
1920
PG_FUNCTION_INFO_V1(gbt_float8_union);
2021
PG_FUNCTION_INFO_V1(gbt_float8_picksplit);
2122
PG_FUNCTION_INFO_V1(gbt_float8_consistent);
@@ -123,6 +124,13 @@ gbt_float8_compress(PG_FUNCTION_ARGS)
123124
PG_RETURN_POINTER(gbt_num_compress(entry,&tinfo));
124125
}
125126

127+
Datum
128+
gbt_float8_fetch(PG_FUNCTION_ARGS)
129+
{
130+
GISTENTRY*entry= (GISTENTRY*)PG_GETARG_POINTER(0);
131+
132+
PG_RETURN_POINTER(gbt_num_fetch(entry,&tinfo));
133+
}
126134

127135
Datum
128136
gbt_float8_consistent(PG_FUNCTION_ARGS)
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
/* contrib/btree_gist/btree_gist--1.0--1.1.sql*/
2+
3+
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
4+
\echo Use"ALTER EXTENSION btree_gist UPDATE TO '1.1'" to load this file. \quit
5+
6+
-- Index-only scan support new in 9.5.
7+
CREATEFUNCTIONgbt_oid_fetch(internal)
8+
RETURNS internal
9+
AS'MODULE_PATHNAME'
10+
LANGUAGE C IMMUTABLE STRICT;
11+
12+
CREATEFUNCTIONgbt_int2_fetch(internal)
13+
RETURNS internal
14+
AS'MODULE_PATHNAME'
15+
LANGUAGE C IMMUTABLE STRICT;
16+
17+
CREATEFUNCTIONgbt_int4_fetch(internal)
18+
RETURNS internal
19+
AS'MODULE_PATHNAME'
20+
LANGUAGE C IMMUTABLE STRICT;
21+
22+
CREATEFUNCTIONgbt_int8_fetch(internal)
23+
RETURNS internal
24+
AS'MODULE_PATHNAME'
25+
LANGUAGE C IMMUTABLE STRICT;
26+
27+
CREATEFUNCTIONgbt_float4_fetch(internal)
28+
RETURNS internal
29+
AS'MODULE_PATHNAME'
30+
LANGUAGE C IMMUTABLE STRICT;
31+
32+
CREATEFUNCTIONgbt_float8_fetch(internal)
33+
RETURNS internal
34+
AS'MODULE_PATHNAME'
35+
LANGUAGE C IMMUTABLE STRICT;
36+
37+
CREATEFUNCTIONgbt_ts_fetch(internal)
38+
RETURNS internal
39+
AS'MODULE_PATHNAME'
40+
LANGUAGE C IMMUTABLE STRICT;
41+
42+
CREATEFUNCTIONgbt_time_fetch(internal)
43+
RETURNS internal
44+
AS'MODULE_PATHNAME'
45+
LANGUAGE C IMMUTABLE STRICT;
46+
47+
CREATEFUNCTIONgbt_date_fetch(internal)
48+
RETURNS internal
49+
AS'MODULE_PATHNAME'
50+
LANGUAGE C IMMUTABLE STRICT;
51+
52+
CREATEFUNCTIONgbt_intv_fetch(internal)
53+
RETURNS internal
54+
AS'MODULE_PATHNAME'
55+
LANGUAGE C IMMUTABLE STRICT;
56+
57+
CREATEFUNCTIONgbt_cash_fetch(internal)
58+
RETURNS internal
59+
AS'MODULE_PATHNAME'
60+
LANGUAGE C IMMUTABLE STRICT;
61+
62+
CREATEFUNCTIONgbt_macad_fetch(internal)
63+
RETURNS internal
64+
AS'MODULE_PATHNAME'
65+
LANGUAGE C IMMUTABLE STRICT;
66+
67+
CREATEFUNCTIONgbt_var_fetch(internal)
68+
RETURNS internal
69+
AS'MODULE_PATHNAME'
70+
LANGUAGE C IMMUTABLE STRICT;
71+
72+
ALTEROPERATOR FAMILY gist_oid_ops USING gist ADD
73+
FUNCTION9 (oid,oid) gbt_oid_fetch (internal) ;
74+
75+
ALTEROPERATOR FAMILY gist_int2_ops USING gist ADD
76+
FUNCTION9 (int2, int2) gbt_int2_fetch (internal) ;
77+
78+
ALTEROPERATOR FAMILY gist_int4_ops USING gist ADD
79+
FUNCTION9 (int4, int4) gbt_int4_fetch (internal) ;
80+
81+
ALTEROPERATOR FAMILY gist_int8_ops USING gist ADD
82+
FUNCTION9 (int8, int8) gbt_int8_fetch (internal) ;
83+
84+
ALTEROPERATOR FAMILY gist_float4_ops USING gist ADD
85+
FUNCTION9 (float4, float4) gbt_float4_fetch (internal) ;
86+
87+
ALTEROPERATOR FAMILY gist_float8_ops USING gist ADD
88+
FUNCTION9 (float8, float8) gbt_float8_fetch (internal) ;
89+
90+
ALTEROPERATOR FAMILY gist_timestamp_ops USING gist ADD
91+
FUNCTION9 (timestamp,timestamp) gbt_ts_fetch (internal) ;
92+
93+
ALTEROPERATOR FAMILY gist_timestamptz_ops USING gist ADD
94+
FUNCTION9 (timestamptz,timestamptz) gbt_ts_fetch (internal) ;
95+
96+
ALTEROPERATOR FAMILY gist_time_ops USING gist ADD
97+
FUNCTION9 (time,time) gbt_time_fetch (internal) ;
98+
99+
ALTEROPERATOR FAMILY gist_date_ops USING gist ADD
100+
FUNCTION9 (date,date) gbt_date_fetch (internal) ;
101+
102+
ALTEROPERATOR FAMILY gist_interval_ops USING gist ADD
103+
FUNCTION9 (interval, interval) gbt_intv_fetch (internal) ;
104+
105+
ALTEROPERATOR FAMILY gist_cash_ops USING gist ADD
106+
FUNCTION9 (money,money) gbt_cash_fetch (internal) ;
107+
108+
ALTEROPERATOR FAMILY gist_macaddr_ops USING gist ADD
109+
FUNCTION9 (macaddr,macaddr) gbt_macad_fetch (internal) ;
110+
111+
ALTEROPERATOR FAMILY gist_text_ops USING gist ADD
112+
FUNCTION9 (text,text) gbt_var_fetch (internal) ;
113+
114+
ALTEROPERATOR FAMILY gist_bpchar_ops USING gist ADD
115+
FUNCTION9 (bpchar, bpchar) gbt_var_fetch (internal) ;
116+
117+
ALTEROPERATOR FAMILY gist_bytea_ops USING gist ADD
118+
FUNCTION9 (bytea,bytea) gbt_var_fetch (internal) ;
119+
120+
ALTEROPERATOR FAMILY gist_numeric_ops USING gist ADD
121+
FUNCTION9 (numeric,numeric) gbt_var_fetch (internal) ;
122+
123+
ALTEROPERATOR FAMILY gist_bit_ops USING gist ADD
124+
FUNCTION9 (bit,bit) gbt_var_fetch (internal) ;
125+
126+
ALTEROPERATOR FAMILY gist_vbit_ops USING gist ADD
127+
FUNCTION9 (varbit, varbit) gbt_var_fetch (internal) ;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp