forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitfa5e440
committed
Adjust the API for aggregate function calls so that a C-coded function
can tell whether it is being used as an aggregate or not. This allowssuch a function to avoid re-pallocing a pass-by-reference transitionvalue; normally it would be unsafe for a function to scribble on an input,but in the aggregate case it's safe to reuse the old transition value.Make int8inc() do this. This gets a useful improvement in the speed ofCOUNT(*), at least on narrow tables (it seems to be swamped by I/O whenthe table rows are wide). Per a discussion in early December withNeil Conway. I also fixed int_aggregate.c to check this, therebyturning it into something approaching a supportable technique insteadof being a crude hack.1 parentde004e4 commitfa5e440
File tree
6 files changed
+162
-73
lines changed- contrib/intagg
- doc/src/sgml
- src/backend
- executor
- utils/adt
6 files changed
+162
-73
lines changedLines changed: 70 additions & 47 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
34 | 34 |
| |
35 | 35 |
| |
36 | 36 |
| |
37 |
| - | |
38 |
| - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
39 | 43 |
| |
40 | 44 |
| |
41 | 45 |
| |
| |||
56 | 60 |
| |
57 | 61 |
| |
58 | 62 |
| |
59 |
| - | |
| 63 | + | |
60 | 64 |
| |
61 | 65 |
| |
62 | 66 |
| |
| |||
68 | 72 |
| |
69 | 73 |
| |
70 | 74 |
| |
71 |
| - | |
| 75 | + | |
72 | 76 |
| |
73 |
| - | |
74 |
| - | |
| 77 | + | |
| 78 | + | |
75 | 79 |
| |
76 | 80 |
| |
77 |
| - | |
| 81 | + | |
78 | 82 |
| |
79 | 83 |
| |
80 | 84 |
| |
81 | 85 |
| |
82 | 86 |
| |
83 | 87 |
| |
84 |
| - | |
| 88 | + | |
85 | 89 |
| |
86 |
| - | |
| 90 | + | |
87 | 91 |
| |
88 | 92 |
| |
89 | 93 |
| |
90 | 94 |
| |
91 | 95 |
| |
92 | 96 |
| |
93 |
| - | |
| 97 | + | |
| 98 | + | |
94 | 99 |
| |
95 | 100 |
| |
96 |
| - | |
97 |
| - | |
| 101 | + | |
| 102 | + | |
98 | 103 |
| |
99 | 104 |
| |
100 |
| - | |
| 105 | + | |
| 106 | + | |
101 | 107 |
| |
102 | 108 |
| |
103 |
| - | |
| 109 | + | |
| 110 | + | |
104 | 111 |
| |
105 | 112 |
| |
106 | 113 |
| |
107 | 114 |
| |
108 | 115 |
| |
109 |
| - | |
110 |
| - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
111 | 119 |
| |
112 | 120 |
| |
113 |
| - | |
| 121 | + | |
114 | 122 |
| |
115 |
| - | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
116 | 136 |
| |
117 |
| - | |
118 |
| - | |
119 |
| - | |
120 |
| - | |
121 |
| - | |
122 |
| - | |
123 |
| - | |
124 |
| - | |
125 |
| - | |
126 |
| - | |
127 |
| - | |
128 |
| - | |
129 |
| - | |
130 |
| - | |
131 |
| - | |
132 |
| - | |
133 |
| - | |
134 |
| - | |
135 |
| - | |
136 |
| - | |
137 | 137 |
| |
138 | 138 |
| |
139 | 139 |
| |
| |||
144 | 144 |
| |
145 | 145 |
| |
146 | 146 |
| |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
147 | 154 |
| |
148 |
| - | |
| 155 | + | |
149 | 156 |
| |
150 | 157 |
| |
151 |
| - | |
| 158 | + | |
152 | 159 |
| |
153 | 160 |
| |
154 | 161 |
| |
| |||
164 | 171 |
| |
165 | 172 |
| |
166 | 173 |
| |
167 |
| - | |
| 174 | + | |
| 175 | + | |
168 | 176 |
| |
169 | 177 |
| |
170 | 178 |
| |
171 | 179 |
| |
172 | 180 |
| |
173 |
| - | |
174 |
| - | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
175 | 184 |
| |
176 |
| - | |
177 |
| - | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
178 | 194 |
| |
179 |
| - | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
180 | 200 |
| |
181 | 201 |
| |
182 |
| - | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
183 | 206 |
| |
184 | 207 |
| |
185 | 208 |
| |
|
Lines changed: 3 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
9 |
| - | |
| 9 | + | |
10 | 10 |
| |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
15 | 15 |
| |
16 |
| - | |
| 16 | + | |
17 | 17 |
| |
18 | 18 |
| |
19 | 19 |
| |
| |||
24 | 24 |
| |
25 | 25 |
| |
26 | 26 |
| |
27 |
| - | |
28 |
| - | |
29 |
| - | |
30 |
| - | |
31 |
| - | |
32 | 27 |
| |
33 | 28 |
| |
34 | 29 |
| |
35 | 30 |
| |
36 | 31 |
| |
37 | 32 |
| |
38 |
| - | |
| 33 | + |
Lines changed: 16 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | 1 |
| |
2 |
| - | |
| 2 | + | |
3 | 3 |
| |
4 | 4 |
| |
5 | 5 |
| |
| |||
161 | 161 |
| |
162 | 162 |
| |
163 | 163 |
| |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
164 | 179 |
| |
165 | 180 |
| |
166 | 181 |
| |
|
Lines changed: 15 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | 1 |
| |
2 |
| - | |
| 2 | + | |
3 | 3 |
| |
4 | 4 |
| |
5 | 5 |
| |
| |||
1188 | 1188 |
| |
1189 | 1189 |
| |
1190 | 1190 |
| |
1191 |
| - | |
1192 |
| - | |
1193 |
| - | |
1194 |
| - | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
1195 | 1195 |
| |
1196 | 1196 |
| |
1197 | 1197 |
| |
| |||
1205 | 1205 |
| |
1206 | 1206 |
| |
1207 | 1207 |
| |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
1208 | 1218 |
| |
1209 | 1219 |
| |
1210 | 1220 |
| |
|
Lines changed: 19 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
40 | 40 |
| |
41 | 41 |
| |
42 | 42 |
| |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
43 | 59 |
| |
44 | 60 |
| |
45 | 61 |
| |
46 | 62 |
| |
47 | 63 |
| |
48 |
| - | |
| 64 | + | |
49 | 65 |
| |
50 | 66 |
| |
51 | 67 |
| |
| |||
363 | 379 |
| |
364 | 380 |
| |
365 | 381 |
| |
366 |
| - | |
| 382 | + | |
367 | 383 |
| |
368 | 384 |
| |
369 | 385 |
| |
| |||
541 | 557 |
| |
542 | 558 |
| |
543 | 559 |
| |
| 560 | + | |
544 | 561 |
| |
545 | 562 |
| |
546 | 563 |
| |
|
0 commit comments
Comments
(0)