forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite6af7b3
committed
Fix handling of NULL distances in KNN-GiST
In order to implement NULL LAST semantic GiST previously assumed distance tothe NULL value to be Inf. However, our distance functions can return Inf andNaN for non-null values. In such cases, NULL LAST semantic appears to bebroken. This commit fixes that by introducing separate array of null flags fordistances.Backpatch to all supported versions.Discussion:https://postgr.es/m/CAPpHfdsNvNdA0DBS%2BwMpFrgwT6C3-q50sFVGLSiuWnV3FqOJuQ%40mail.gmail.comAuthor: Alexander KorotkovBackpatch-through: 9.41 parentbc67f41 commite6af7b3
File tree
7 files changed
+106
-36
lines changed- src
- backend/access
- gist
- index
- spgist
- include/access
- test/regress/expected
7 files changed
+106
-36
lines changedLines changed: 48 additions & 22 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
112 | 112 |
| |
113 | 113 |
| |
114 | 114 |
| |
115 |
| - | |
116 |
| - | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
117 | 118 |
| |
118 | 119 |
| |
119 | 120 |
| |
| |||
134 | 135 |
| |
135 | 136 |
| |
136 | 137 |
| |
137 |
| - | |
| 138 | + | |
| 139 | + | |
138 | 140 |
| |
139 | 141 |
| |
140 | 142 |
| |
| |||
152 | 154 |
| |
153 | 155 |
| |
154 | 156 |
| |
155 |
| - | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
156 | 161 |
| |
157 | 162 |
| |
158 | 163 |
| |
| |||
235 | 240 |
| |
236 | 241 |
| |
237 | 242 |
| |
238 |
| - | |
| 243 | + | |
| 244 | + | |
239 | 245 |
| |
240 | 246 |
| |
241 | 247 |
| |
| |||
249 | 255 |
| |
250 | 256 |
| |
251 | 257 |
| |
252 |
| - | |
253 |
| - | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
254 | 261 |
| |
255 | 262 |
| |
256 | 263 |
| |
| |||
287 | 294 |
| |
288 | 295 |
| |
289 | 296 |
| |
290 |
| - | |
| 297 | + | |
| 298 | + | |
291 | 299 |
| |
292 | 300 |
| |
293 | 301 |
| |
294 |
| - | |
| 302 | + | |
| 303 | + | |
295 | 304 |
| |
296 | 305 |
| |
297 | 306 |
| |
| |||
304 | 313 |
| |
305 | 314 |
| |
306 | 315 |
| |
307 |
| - | |
| 316 | + | |
| 317 | + | |
308 | 318 |
| |
309 | 319 |
| |
310 | 320 |
| |
| |||
321 | 331 |
| |
322 | 332 |
| |
323 | 333 |
| |
324 |
| - | |
| 334 | + | |
| 335 | + | |
325 | 336 |
| |
326 | 337 |
| |
327 | 338 |
| |
| |||
359 | 370 |
| |
360 | 371 |
| |
361 | 372 |
| |
362 |
| - | |
| 373 | + | |
363 | 374 |
| |
364 | 375 |
| |
365 | 376 |
| |
| |||
369 | 380 |
| |
370 | 381 |
| |
371 | 382 |
| |
372 |
| - | |
373 |
| - | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
374 | 387 |
| |
375 | 388 |
| |
376 | 389 |
| |
| |||
479 | 492 |
| |
480 | 493 |
| |
481 | 494 |
| |
| 495 | + | |
482 | 496 |
| |
483 | 497 |
| |
484 | 498 |
| |
| |||
513 | 527 |
| |
514 | 528 |
| |
515 | 529 |
| |
516 |
| - | |
517 |
| - | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
518 | 534 |
| |
519 | 535 |
| |
520 | 536 |
| |
| |||
579 | 595 |
| |
580 | 596 |
| |
581 | 597 |
| |
582 |
| - | |
| 598 | + | |
| 599 | + | |
583 | 600 |
| |
584 | 601 |
| |
585 | 602 |
| |
| |||
592 | 609 |
| |
593 | 610 |
| |
594 | 611 |
| |
595 |
| - | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
596 | 616 |
| |
597 | 617 |
| |
598 | 618 |
| |
| |||
630 | 650 |
| |
631 | 651 |
| |
632 | 652 |
| |
633 |
| - | |
| 653 | + | |
634 | 654 |
| |
635 | 655 |
| |
636 | 656 |
| |
| |||
724 | 744 |
| |
725 | 745 |
| |
726 | 746 |
| |
727 |
| - | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
728 | 751 |
| |
729 | 752 |
| |
730 | 753 |
| |
| |||
755 | 778 |
| |
756 | 779 |
| |
757 | 780 |
| |
758 |
| - | |
| 781 | + | |
759 | 782 |
| |
760 | 783 |
| |
761 | 784 |
| |
| |||
770 | 793 |
| |
771 | 794 |
| |
772 | 795 |
| |
773 |
| - | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
774 | 800 |
| |
775 | 801 |
| |
776 | 802 |
| |
|
Lines changed: 21 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
33 | 33 |
| |
34 | 34 |
| |
35 | 35 |
| |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
36 | 40 |
| |
37 | 41 |
| |
38 | 42 |
| |
39 | 43 |
| |
40 |
| - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
41 | 56 |
| |
42 |
| - | |
43 |
| - | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
44 | 60 |
| |
45 | 61 |
| |
46 | 62 |
| |
| |||
84 | 100 |
| |
85 | 101 |
| |
86 | 102 |
| |
87 |
| - | |
| 103 | + | |
| 104 | + | |
88 | 105 |
| |
89 | 106 |
| |
90 | 107 |
| |
|
Lines changed: 10 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
847 | 847 |
| |
848 | 848 |
| |
849 | 849 |
| |
850 |
| - | |
| 850 | + | |
| 851 | + | |
851 | 852 |
| |
852 | 853 |
| |
853 | 854 |
| |
854 | 855 |
| |
855 | 856 |
| |
856 |
| - | |
| 857 | + | |
857 | 858 |
| |
858 | 859 |
| |
859 | 860 |
| |
| |||
868 | 869 |
| |
869 | 870 |
| |
870 | 871 |
| |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
871 | 877 |
| |
872 | 878 |
| |
873 | 879 |
| |
874 | 880 |
| |
875 | 881 |
| |
876 | 882 |
| |
877 | 883 |
| |
878 |
| - | |
| 884 | + | |
879 | 885 |
| |
880 | 886 |
| |
881 | 887 |
| |
| |||
886 | 892 |
| |
887 | 893 |
| |
888 | 894 |
| |
889 |
| - | |
| 895 | + | |
890 | 896 |
| |
891 | 897 |
| |
892 | 898 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
934 | 934 |
| |
935 | 935 |
| |
936 | 936 |
| |
| 937 | + | |
937 | 938 |
| |
938 | 939 |
| |
939 | 940 |
| |
|
Lines changed: 3 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
178 | 178 |
| |
179 | 179 |
| |
180 | 180 |
| |
181 |
| - | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
182 | 184 |
| |
183 | 185 |
| |
184 | 186 |
| |
|
Lines changed: 22 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
138 | 138 |
| |
139 | 139 |
| |
140 | 140 |
| |
141 |
| - | |
142 |
| - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
143 | 148 |
| |
144 | 149 |
| |
145 | 150 |
| |
146 | 151 |
| |
147 |
| - | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
148 | 165 |
| |
149 | 166 |
| |
150 | 167 |
| |
| |||
160 | 177 |
| |
161 | 178 |
| |
162 | 179 |
| |
163 |
| - | |
| 180 | + | |
| 181 | + | |
164 | 182 |
| |
165 | 183 |
| |
166 | 184 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
531 | 531 |
| |
532 | 532 |
| |
533 | 533 |
| |
534 |
| - | |
535 | 534 |
| |
| 535 | + | |
536 | 536 |
| |
537 | 537 |
| |
538 | 538 |
| |
|
0 commit comments
Comments
(0)