forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commita148f8b
committed
Add a planner support function for starts_with().
This fills in some gaps in planner support for starts_with() andthe equivalent ^@ operator:* A condition such as "textcol ^@ constant" can now use a regularbtree index, not only an SP-GiST index, so long as the index'scollation is C. (This works just like "textcol LIKE 'foo%'".)* "starts_with(textcol, constant)" can be optimized the same as"textcol ^@ constant".* Fixed-prefix LIKE and regex patterns are now more like starts_with()in another way: if you apply one to an SPGiST-indexed column, you'llget an index condition using ^@ rather than two index conditions with>= and <.Per a complaint from Shay Rojansky. Patch by me; thanks toNathan Bossart for review.Discussion:https://postgr.es/m/232599.1633800229@sss.pgh.pa.us1 parent248c3a9 commita148f8b
File tree
6 files changed
+95
-23
lines changed- src
- backend/utils/adt
- include/catalog
- test/regress
- expected
- sql
6 files changed
+95
-23
lines changedLines changed: 46 additions & 19 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
143 | 143 |
| |
144 | 144 |
| |
145 | 145 |
| |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
146 | 154 |
| |
147 | 155 |
| |
148 | 156 |
| |
| |||
246 | 254 |
| |
247 | 255 |
| |
248 | 256 |
| |
| 257 | + | |
249 | 258 |
| |
250 | 259 |
| |
251 | 260 |
| |
| |||
302 | 311 |
| |
303 | 312 |
| |
304 | 313 |
| |
305 |
| - | |
306 |
| - | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
307 | 322 |
| |
308 | 323 |
| |
309 | 324 |
| |
310 | 325 |
| |
| 326 | + | |
| 327 | + | |
311 | 328 |
| |
312 | 329 |
| |
313 | 330 |
| |
| |||
360 | 377 |
| |
361 | 378 |
| |
362 | 379 |
| |
363 |
| - | |
364 |
| - | |
365 |
| - | |
366 |
| - | |
367 |
| - | |
368 |
| - | |
369 |
| - | |
370 |
| - | |
371 |
| - | |
372 |
| - | |
373 |
| - | |
374 |
| - | |
375 |
| - | |
376 |
| - | |
377 | 380 |
| |
378 | 381 |
| |
379 | 382 |
| |
| |||
409 | 412 |
| |
410 | 413 |
| |
411 | 414 |
| |
412 |
| - | |
413 |
| - | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
414 | 440 |
| |
415 | 441 |
| |
416 | 442 |
| |
| |||
1165 | 1191 |
| |
1166 | 1192 |
| |
1167 | 1193 |
| |
1168 |
| - | |
1169 | 1194 |
| |
1170 | 1195 |
| |
1171 | 1196 |
| |
| |||
1175 | 1200 |
| |
1176 | 1201 |
| |
1177 | 1202 |
| |
| 1203 | + | |
| 1204 | + | |
1178 | 1205 |
| |
1179 | 1206 |
| |
1180 | 1207 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
53 | 53 |
| |
54 | 54 |
| |
55 | 55 |
| |
56 |
| - | |
| 56 | + | |
57 | 57 |
| |
58 | 58 |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
102 | 102 |
| |
103 | 103 |
| |
104 | 104 |
| |
105 |
| - | |
| 105 | + | |
106 | 106 |
| |
107 | 107 |
| |
108 | 108 |
| |
|
Lines changed: 6 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
167 | 167 |
| |
168 | 168 |
| |
169 | 169 |
| |
170 |
| - | |
171 |
| - | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
172 | 176 |
| |
173 | 177 |
| |
174 | 178 |
| |
|
Lines changed: 33 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
804 | 804 |
| |
805 | 805 |
| |
806 | 806 |
| |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
807 | 823 |
| |
808 | 824 |
| |
809 | 825 |
| |
| |||
1333 | 1349 |
| |
1334 | 1350 |
| |
1335 | 1351 |
| |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
| 1355 | + | |
| 1356 | + | |
| 1357 | + | |
| 1358 | + | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + | |
| 1368 | + | |
1336 | 1369 |
| |
1337 | 1370 |
| |
1338 | 1371 |
|
Lines changed: 8 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
295 | 295 |
| |
296 | 296 |
| |
297 | 297 |
| |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
298 | 302 |
| |
299 | 303 |
| |
300 | 304 |
| |
| |||
424 | 428 |
| |
425 | 429 |
| |
426 | 430 |
| |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
427 | 435 |
| |
428 | 436 |
| |
429 | 437 |
|
0 commit comments
Comments
(0)