Commit 363a6e8
Richard Guo
Eliminate code duplication in replace_rte_variables callbacks
The callback functions ReplaceVarsFromTargetList_callback and
pullup_replace_vars_callback are both used to replace Vars in an
expression tree that reference a particular RTE with items from a
targetlist, and they both need to expand whole-tuple references and
deal with OLD/NEW RETURNING list Vars. As a result, currently there
is significant code duplication between these two functions.
This patch introduces a new function, ReplaceVarFromTargetList, to
perform the replacement and calls it from both callback functions,
thereby eliminating code duplication.
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Author: Richard Guo <guofenglinux@gmail.com>
Reviewed-by: Jian He <jian.universality@gmail.com>
Discussion: https://postgr.es/m/CAEZATCWhr=FM4X5kCPvVs-g2XEk+ceLsNtBK_zZMkqFn9vUjsw@mail.gmail.com1 parent 1e4351a commit 363a6e8
File tree
3 files changed
+96
-142
lines changed- src
- backend
- optimizer/prep
- rewrite
- include/rewrite
3 files changed
+96
-142
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2666 | 2666 | | |
2667 | 2667 | | |
2668 | 2668 | | |
2669 | | - | |
| 2669 | + | |
2670 | 2670 | | |
2671 | | - | |
2672 | | - | |
2673 | | - | |
2674 | | - | |
2675 | | - | |
2676 | | - | |
2677 | | - | |
2678 | 2671 | | |
2679 | | - | |
2680 | | - | |
2681 | | - | |
2682 | | - | |
2683 | | - | |
2684 | | - | |
2685 | | - | |
2686 | | - | |
| 2672 | + | |
| 2673 | + | |
2687 | 2674 | | |
2688 | | - | |
2689 | | - | |
2690 | | - | |
2691 | | - | |
2692 | | - | |
2693 | | - | |
2694 | | - | |
2695 | | - | |
2696 | | - | |
2697 | | - | |
2698 | | - | |
2699 | | - | |
2700 | | - | |
2701 | | - | |
2702 | | - | |
2703 | | - | |
2704 | | - | |
2705 | | - | |
2706 | | - | |
2707 | | - | |
2708 | | - | |
2709 | | - | |
2710 | | - | |
2711 | | - | |
2712 | | - | |
2713 | | - | |
2714 | | - | |
2715 | | - | |
2716 | | - | |
2717 | | - | |
2718 | | - | |
2719 | | - | |
2720 | | - | |
2721 | | - | |
2722 | | - | |
2723 | | - | |
2724 | | - | |
2725 | | - | |
2726 | | - | |
2727 | | - | |
2728 | | - | |
2729 | | - | |
2730 | | - | |
2731 | | - | |
2732 | | - | |
2733 | | - | |
2734 | | - | |
2735 | | - | |
2736 | | - | |
2737 | | - | |
2738 | | - | |
2739 | | - | |
2740 | | - | |
2741 | | - | |
2742 | | - | |
2743 | | - | |
2744 | | - | |
2745 | | - | |
2746 | | - | |
2747 | | - | |
2748 | | - | |
2749 | | - | |
2750 | | - | |
2751 | | - | |
2752 | | - | |
2753 | | - | |
2754 | | - | |
2755 | | - | |
2756 | | - | |
2757 | | - | |
2758 | | - | |
2759 | | - | |
2760 | | - | |
2761 | | - | |
2762 | | - | |
2763 | | - | |
2764 | | - | |
2765 | | - | |
2766 | | - | |
2767 | | - | |
2768 | | - | |
2769 | | - | |
2770 | | - | |
2771 | | - | |
2772 | | - | |
2773 | | - | |
2774 | | - | |
2775 | | - | |
2776 | | - | |
2777 | | - | |
2778 | | - | |
2779 | | - | |
2780 | | - | |
2781 | | - | |
2782 | | - | |
2783 | | - | |
2784 | | - | |
2785 | | - | |
| 2675 | + | |
| 2676 | + | |
| 2677 | + | |
| 2678 | + | |
| 2679 | + | |
| 2680 | + | |
2786 | 2681 | | |
2787 | 2682 | | |
2788 | 2683 | | |
2789 | 2684 | | |
2790 | 2685 | | |
2791 | 2686 | | |
2792 | | - | |
2793 | | - | |
| 2687 | + | |
| 2688 | + | |
| 2689 | + | |
| 2690 | + | |
| 2691 | + | |
| 2692 | + | |
| 2693 | + | |
| 2694 | + | |
| 2695 | + | |
| 2696 | + | |
| 2697 | + | |
| 2698 | + | |
| 2699 | + | |
| 2700 | + | |
2794 | 2701 | | |
2795 | 2702 | | |
2796 | 2703 | | |
| |||
2936 | 2843 | | |
2937 | 2844 | | |
2938 | 2845 | | |
2939 | | - | |
| 2846 | + | |
2940 | 2847 | | |
2941 | 2848 | | |
2942 | 2849 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1010 | 1010 | | |
1011 | 1011 | | |
1012 | 1012 | | |
1013 | | - | |
| 1013 | + | |
1014 | 1014 | | |
1015 | 1015 | | |
1016 | 1016 | | |
| |||
1797 | 1797 | | |
1798 | 1798 | | |
1799 | 1799 | | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
1800 | 1805 | | |
1801 | 1806 | | |
1802 | 1807 | | |
| |||
1814 | 1819 | | |
1815 | 1820 | | |
1816 | 1821 | | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
| 1844 | + | |
| 1845 | + | |
1817 | 1846 | | |
1818 | 1847 | | |
1819 | 1848 | | |
| |||
1822 | 1851 | | |
1823 | 1852 | | |
1824 | 1853 | | |
| 1854 | + | |
1825 | 1855 | | |
1826 | 1856 | | |
1827 | 1857 | | |
| |||
1830 | 1860 | | |
1831 | 1861 | | |
1832 | 1862 | | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
1833 | 1867 | | |
1834 | 1868 | | |
1835 | 1869 | | |
1836 | | - | |
1837 | | - | |
1838 | | - | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
1839 | 1874 | | |
1840 | | - | |
1841 | | - | |
1842 | | - | |
1843 | 1875 | | |
1844 | | - | |
| 1876 | + | |
| 1877 | + | |
1845 | 1878 | | |
1846 | 1879 | | |
1847 | 1880 | | |
1848 | 1881 | | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
1849 | 1896 | | |
1850 | 1897 | | |
1851 | 1898 | | |
1852 | 1899 | | |
1853 | 1900 | | |
1854 | 1901 | | |
1855 | | - | |
| 1902 | + | |
1856 | 1903 | | |
1857 | 1904 | | |
1858 | 1905 | | |
| |||
1863 | 1910 | | |
1864 | 1911 | | |
1865 | 1912 | | |
1866 | | - | |
| 1913 | + | |
1867 | 1914 | | |
1868 | 1915 | | |
1869 | 1916 | | |
1870 | 1917 | | |
1871 | | - | |
| 1918 | + | |
1872 | 1919 | | |
1873 | 1920 | | |
1874 | 1921 | | |
1875 | 1922 | | |
1876 | 1923 | | |
1877 | 1924 | | |
1878 | 1925 | | |
1879 | | - | |
| 1926 | + | |
| 1927 | + | |
1880 | 1928 | | |
1881 | 1929 | | |
1882 | 1930 | | |
| |||
1906 | 1954 | | |
1907 | 1955 | | |
1908 | 1956 | | |
1909 | | - | |
1910 | | - | |
1911 | | - | |
1912 | | - | |
1913 | 1957 | | |
1914 | 1958 | | |
1915 | 1959 | | |
| |||
1932 | 1976 | | |
1933 | 1977 | | |
1934 | 1978 | | |
1935 | | - | |
| 1979 | + | |
1936 | 1980 | | |
1937 | 1981 | | |
1938 | | - | |
1939 | | - | |
| 1982 | + | |
| 1983 | + | |
1940 | 1984 | | |
1941 | 1985 | | |
1942 | 1986 | | |
1943 | | - | |
1944 | | - | |
| 1987 | + | |
| 1988 | + | |
1945 | 1989 | | |
1946 | 1990 | | |
1947 | 1991 | | |
1948 | | - | |
| 1992 | + | |
1949 | 1993 | | |
1950 | 1994 | | |
1951 | 1995 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | 58 | | |
62 | 59 | | |
63 | 60 | | |
| |||
92 | 89 | | |
93 | 90 | | |
94 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
95 | 98 | | |
96 | 99 | | |
97 | 100 | | |
| |||
0 commit comments