forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit55f7c33
committed
Reimplement CASE val WHEN compval1 THEN ... WHEN compval2 THEN ... END
so that the 'val' is computed only once, per recent discussion. Thespeedup is not much when 'val' is just a simple variable, but could besignificant for larger expressions. More importantly this avoids issueswith multiple evaluations of a volatile 'val', and it allows the CASEexpression to be reverse-listed in its original form by ruleutils.c.1 parent8c702ea commit55f7c33
File tree
16 files changed
+248
-55
lines changed- src
- backend
- executor
- nodes
- optimizer/util
- parser
- utils/adt
- include
- catalog
- nodes
- pl/plpgsql/src
- test/regress/expected
16 files changed
+248
-55
lines changedLines changed: 49 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
81 | 81 |
| |
82 | 82 |
| |
83 | 83 |
| |
| 84 | + | |
| 85 | + | |
| 86 | + | |
84 | 87 |
| |
85 | 88 |
| |
86 | 89 |
| |
| |||
1809 | 1812 |
| |
1810 | 1813 |
| |
1811 | 1814 |
| |
| 1815 | + | |
| 1816 | + | |
1812 | 1817 |
| |
1813 | 1818 |
| |
1814 | 1819 |
| |
1815 | 1820 |
| |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
1816 | 1838 |
| |
1817 | 1839 |
| |
1818 | 1840 |
| |
| |||
1835 | 1857 |
| |
1836 | 1858 |
| |
1837 | 1859 |
| |
| 1860 | + | |
| 1861 | + | |
1838 | 1862 |
| |
1839 | 1863 |
| |
1840 | 1864 |
| |
1841 | 1865 |
| |
1842 | 1866 |
| |
1843 | 1867 |
| |
1844 | 1868 |
| |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
1845 | 1872 |
| |
1846 | 1873 |
| |
1847 | 1874 |
| |
| |||
1854 | 1881 |
| |
1855 | 1882 |
| |
1856 | 1883 |
| |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
1857 | 1900 |
| |
1858 | 1901 |
| |
1859 | 1902 |
| |
| |||
2478 | 2521 |
| |
2479 | 2522 |
| |
2480 | 2523 |
| |
| 2524 | + | |
| 2525 | + | |
| 2526 | + | |
| 2527 | + | |
2481 | 2528 |
| |
2482 | 2529 |
| |
2483 | 2530 |
| |
| |||
2666 | 2713 |
| |
2667 | 2714 |
| |
2668 | 2715 |
| |
| 2716 | + | |
2669 | 2717 |
| |
2670 | 2718 |
| |
2671 | 2719 |
| |
| |||
2680 | 2728 |
| |
2681 | 2729 |
| |
2682 | 2730 |
| |
2683 |
| - | |
2684 |
| - | |
2685 | 2731 |
| |
2686 | 2732 |
| |
2687 | 2733 |
| |
|
Lines changed: 4 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
306 | 306 |
| |
307 | 307 |
| |
308 | 308 |
| |
| 309 | + | |
| 310 | + | |
| 311 | + | |
309 | 312 |
| |
310 | 313 |
| |
311 | 314 |
| |
|
Lines changed: 18 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
15 | 15 |
| |
16 | 16 |
| |
17 | 17 |
| |
18 |
| - | |
| 18 | + | |
19 | 19 |
| |
20 | 20 |
| |
21 | 21 |
| |
| |||
968 | 968 |
| |
969 | 969 |
| |
970 | 970 |
| |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
971 | 985 |
| |
972 | 986 |
| |
973 | 987 |
| |
| |||
2643 | 2657 |
| |
2644 | 2658 |
| |
2645 | 2659 |
| |
| 2660 | + | |
| 2661 | + | |
| 2662 | + | |
2646 | 2663 |
| |
2647 | 2664 |
| |
2648 | 2665 |
| |
|
Lines changed: 13 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
18 | 18 |
| |
19 | 19 |
| |
20 | 20 |
| |
21 |
| - | |
| 21 | + | |
22 | 22 |
| |
23 | 23 |
| |
24 | 24 |
| |
| |||
403 | 403 |
| |
404 | 404 |
| |
405 | 405 |
| |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
406 | 415 |
| |
407 | 416 |
| |
408 | 417 |
| |
| |||
1724 | 1733 |
| |
1725 | 1734 |
| |
1726 | 1735 |
| |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
1727 | 1739 |
| |
1728 | 1740 |
| |
1729 | 1741 |
| |
|
Lines changed: 13 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
805 | 805 |
| |
806 | 806 |
| |
807 | 807 |
| |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
808 | 817 |
| |
809 | 818 |
| |
810 | 819 |
| |
| |||
1701 | 1710 |
| |
1702 | 1711 |
| |
1703 | 1712 |
| |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
1704 | 1716 |
| |
1705 | 1717 |
| |
1706 | 1718 |
| |
|
Lines changed: 17 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
648 | 648 |
| |
649 | 649 |
| |
650 | 650 |
| |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
651 | 665 |
| |
652 | 666 |
| |
653 | 667 |
| |
| |||
1010 | 1024 |
| |
1011 | 1025 |
| |
1012 | 1026 |
| |
| 1027 | + | |
| 1028 | + | |
1013 | 1029 |
| |
1014 | 1030 |
| |
1015 | 1031 |
| |
|
Lines changed: 21 additions & 7 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
1397 | 1397 |
| |
1398 | 1398 |
| |
1399 | 1399 |
| |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
1400 | 1408 |
| |
1401 | 1409 |
| |
1402 | 1410 |
| |
1403 | 1411 |
| |
| 1412 | + | |
1404 | 1413 |
| |
1405 | 1414 |
| |
1406 | 1415 |
| |
1407 | 1416 |
| |
1408 | 1417 |
| |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
1409 | 1423 |
| |
1410 | 1424 |
| |
1411 | 1425 |
| |
| |||
1454 | 1468 |
| |
1455 | 1469 |
| |
1456 | 1470 |
| |
1457 |
| - | |
| 1471 | + | |
1458 | 1472 |
| |
1459 | 1473 |
| |
1460 | 1474 |
| |
| |||
2319 | 2333 |
| |
2320 | 2334 |
| |
2321 | 2335 |
| |
| 2336 | + | |
2322 | 2337 |
| |
2323 | 2338 |
| |
2324 | 2339 |
| |
| |||
2425 | 2440 |
| |
2426 | 2441 |
| |
2427 | 2442 |
| |
| 2443 | + | |
| 2444 | + | |
2428 | 2445 |
| |
2429 | 2446 |
| |
2430 | 2447 |
| |
| |||
2436 | 2453 |
| |
2437 | 2454 |
| |
2438 | 2455 |
| |
2439 |
| - | |
2440 |
| - | |
2441 |
| - | |
2442 | 2456 |
| |
2443 | 2457 |
| |
2444 | 2458 |
| |
| |||
2692 | 2706 |
| |
2693 | 2707 |
| |
2694 | 2708 |
| |
| 2709 | + | |
2695 | 2710 |
| |
2696 | 2711 |
| |
2697 | 2712 |
| |
| |||
2829 | 2844 |
| |
2830 | 2845 |
| |
2831 | 2846 |
| |
2832 |
| - | |
2833 |
| - | |
2834 | 2847 |
| |
| 2848 | + | |
2835 | 2849 |
| |
2836 | 2850 |
| |
2837 | 2851 |
| |
|
Lines changed: 2 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
14 |
| - | |
| 14 | + | |
15 | 15 |
| |
16 | 16 |
| |
17 | 17 |
| |
| |||
6965 | 6965 |
| |
6966 | 6966 |
| |
6967 | 6967 |
| |
| 6968 | + | |
6968 | 6969 |
| |
6969 | 6970 |
| |
6970 | 6971 |
| |
|
0 commit comments
Comments
(0)