forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit9e9a2b7
committed
Remove dependence on -fwrapv semantics in a few places.
This commit attempts to update a few places, such as the money,numeric, and timestamp types, to no longer rely on signed integerwrapping for correctness. This is intended to move us closertowards removing -fwrapv, which may enable some compileroptimizations. However, there is presently no plan to actuallyremove that compiler option in the near future.Besides using some of the existing overflow-aware routines inint.h, this commit introduces and makes use of some new ones.Specifically, it adds functions that accept a signed integer andreturn its absolute value as an unsigned integer with the samewidth (e.g., pg_abs_s64()). It also adds functions that accept anunsigned integer, store the result of negating that integer in asigned integer with the same width, and return whether the negationoverflowed (e.g., pg_neg_u64_overflow()).Finally, this commit adds a couple of tests for timestamps nearPOSTGRES_EPOCH_JDATE.Author: Joseph KoshakowReviewed-by: Tom Lane, Heikki Linnakangas, Jian HeDiscussion:https://postgr.es/m/CAAvxfHdBPOyEGS7s%2Bxf4iaW0-cgiq25jpYdWBqQqvLtLe_t6tw%40mail.gmail.com1 parentad89d71 commit9e9a2b7
File tree
10 files changed
+189
-65
lines changed- src
- backend/utils/adt
- include/common
- interfaces/ecpg/pgtypeslib
- test/regress
- expected
- sql
10 files changed
+189
-65
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
387 | 387 | | |
388 | 388 | | |
389 | 389 | | |
| 390 | + | |
390 | 391 | | |
391 | 392 | | |
392 | 393 | | |
| |||
429 | 430 | | |
430 | 431 | | |
431 | 432 | | |
432 | | - | |
433 | | - | |
434 | 433 | | |
435 | 434 | | |
436 | 435 | | |
| |||
445 | 444 | | |
446 | 445 | | |
447 | 446 | | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
448 | 450 | | |
449 | 451 | | |
450 | 452 | | |
| |||
470 | 472 | | |
471 | 473 | | |
472 | 474 | | |
473 | | - | |
474 | | - | |
| 475 | + | |
| 476 | + | |
475 | 477 | | |
476 | | - | |
| 478 | + | |
477 | 479 | | |
478 | 480 | | |
479 | 481 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8113 | 8113 | | |
8114 | 8114 | | |
8115 | 8115 | | |
8116 | | - | |
| 8116 | + | |
8117 | 8117 | | |
8118 | 8118 | | |
8119 | 8119 | | |
| |||
11584 | 11584 | | |
11585 | 11585 | | |
11586 | 11586 | | |
11587 | | - | |
| 11587 | + | |
11588 | 11588 | | |
11589 | 11589 | | |
11590 | 11590 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
131 | 132 | | |
132 | 133 | | |
133 | 134 | | |
| 135 | + | |
134 | 136 | | |
135 | 137 | | |
136 | 138 | | |
| |||
190 | 192 | | |
191 | 193 | | |
192 | 194 | | |
193 | | - | |
194 | | - | |
| 195 | + | |
195 | 196 | | |
196 | | - | |
| 197 | + | |
197 | 198 | | |
198 | 199 | | |
199 | 200 | | |
| |||
333 | 334 | | |
334 | 335 | | |
335 | 336 | | |
336 | | - | |
337 | | - | |
| 337 | + | |
338 | 338 | | |
339 | | - | |
| 339 | + | |
340 | 340 | | |
341 | 341 | | |
342 | 342 | | |
| |||
393 | 393 | | |
394 | 394 | | |
395 | 395 | | |
| 396 | + | |
396 | 397 | | |
397 | 398 | | |
398 | 399 | | |
| |||
452 | 453 | | |
453 | 454 | | |
454 | 455 | | |
455 | | - | |
456 | | - | |
| 456 | + | |
457 | 457 | | |
458 | | - | |
| 458 | + | |
459 | 459 | | |
460 | 460 | | |
461 | 461 | | |
| |||
595 | 595 | | |
596 | 596 | | |
597 | 597 | | |
598 | | - | |
599 | | - | |
| 598 | + | |
600 | 599 | | |
601 | | - | |
| 600 | + | |
602 | 601 | | |
603 | 602 | | |
604 | 603 | | |
| |||
655 | 654 | | |
656 | 655 | | |
657 | 656 | | |
| 657 | + | |
658 | 658 | | |
659 | 659 | | |
660 | 660 | | |
| |||
714 | 714 | | |
715 | 715 | | |
716 | 716 | | |
717 | | - | |
718 | | - | |
| 717 | + | |
719 | 718 | | |
720 | | - | |
| 719 | + | |
721 | 720 | | |
722 | 721 | | |
723 | 722 | | |
| |||
857 | 856 | | |
858 | 857 | | |
859 | 858 | | |
860 | | - | |
861 | | - | |
| 859 | + | |
862 | 860 | | |
863 | | - | |
| 861 | + | |
864 | 862 | | |
865 | 863 | | |
866 | 864 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
618 | 618 | | |
619 | 619 | | |
620 | 620 | | |
621 | | - | |
622 | | - | |
623 | | - | |
624 | | - | |
625 | | - | |
626 | | - | |
627 | | - | |
628 | | - | |
629 | | - | |
630 | | - | |
631 | | - | |
632 | | - | |
633 | | - | |
| 621 | + | |
| 622 | + | |
634 | 623 | | |
635 | 624 | | |
636 | 625 | | |
| |||
2010 | 1999 | | |
2011 | 2000 | | |
2012 | 2001 | | |
2013 | | - | |
2014 | | - | |
2015 | | - | |
2016 | | - | |
2017 | | - | |
2018 | | - | |
2019 | | - | |
2020 | | - | |
2021 | | - | |
2022 | | - | |
2023 | | - | |
| 2002 | + | |
| 2003 | + | |
2024 | 2004 | | |
2025 | 2005 | | |
2026 | 2006 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
34 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
35 | 55 | | |
36 | 56 | | |
37 | 57 | | |
| |||
97 | 117 | | |
98 | 118 | | |
99 | 119 | | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
100 | 131 | | |
101 | 132 | | |
102 | 133 | | |
| |||
154 | 185 | | |
155 | 186 | | |
156 | 187 | | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
157 | 199 | | |
158 | 200 | | |
159 | 201 | | |
| |||
258 | 300 | | |
259 | 301 | | |
260 | 302 | | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
261 | 311 | | |
262 | 312 | | |
263 | 313 | | |
| |||
318 | 368 | | |
319 | 369 | | |
320 | 370 | | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
321 | 389 | | |
322 | 390 | | |
323 | 391 | | |
| |||
373 | 441 | | |
374 | 442 | | |
375 | 443 | | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
376 | 462 | | |
377 | 463 | | |
378 | 464 | | |
| |||
438 | 524 | | |
439 | 525 | | |
440 | 526 | | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
441 | 556 | | |
442 | 557 | | |
443 | 558 | | |
| |||
0 commit comments
Comments
(0)