Commit d35d32d
committed
Add special case fast-paths for strict functions
Many STRICT function calls will have one or two arguments, in which
case we can speed up checking for NULL input by avoiding setting up
a loop over the arguments. This adds EEOP_FUNCEXPR_STRICT_1 and the
corresponding EEOP_FUNCEXPR_STRICT_2 for functions with one and two
arguments respectively.
Author: Andres Freund <andres@anarazel.de>
Co-authored-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Andreas Karlsson <andreas@proxel.se>
Discussion: https://postgr.es/m/415721CE-7D2E-4B74-B5D9-1950083BA03E@yesql.se
Discussion: https://postgr.es/m/20191023163849.sosqbfs5yenocez3@alap3.anarazel.de1 parent 8dd7c7c commit d35d32d
File tree
4 files changed
+96
-5
lines changed- src
- backend
- executor
- jit/llvm
- include/executor
4 files changed
+96
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2788 | 2788 | | |
2789 | 2789 | | |
2790 | 2790 | | |
2791 | | - | |
| 2791 | + | |
| 2792 | + | |
| 2793 | + | |
| 2794 | + | |
| 2795 | + | |
| 2796 | + | |
| 2797 | + | |
| 2798 | + | |
| 2799 | + | |
2792 | 2800 | | |
2793 | 2801 | | |
2794 | 2802 | | |
| |||
3892 | 3900 | | |
3893 | 3901 | | |
3894 | 3902 | | |
| 3903 | + | |
| 3904 | + | |
3895 | 3905 | | |
3896 | 3906 | | |
3897 | 3907 | | |
| |||
3968 | 3978 | | |
3969 | 3979 | | |
3970 | 3980 | | |
| 3981 | + | |
3971 | 3982 | | |
3972 | 3983 | | |
3973 | 3984 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
366 | 366 | | |
367 | 367 | | |
368 | 368 | | |
369 | | - | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
370 | 372 | | |
371 | 373 | | |
372 | 374 | | |
| |||
498 | 500 | | |
499 | 501 | | |
500 | 502 | | |
| 503 | + | |
| 504 | + | |
501 | 505 | | |
502 | 506 | | |
503 | 507 | | |
| |||
575 | 579 | | |
576 | 580 | | |
577 | 581 | | |
| 582 | + | |
578 | 583 | | |
579 | 584 | | |
580 | 585 | | |
| |||
925 | 930 | | |
926 | 931 | | |
927 | 932 | | |
| 933 | + | |
928 | 934 | | |
929 | 935 | | |
930 | 936 | | |
931 | 937 | | |
932 | 938 | | |
933 | 939 | | |
934 | 940 | | |
| 941 | + | |
| 942 | + | |
935 | 943 | | |
936 | 944 | | |
937 | 945 | | |
| |||
950 | 958 | | |
951 | 959 | | |
952 | 960 | | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
953 | 1009 | | |
954 | 1010 | | |
955 | 1011 | | |
| |||
1982 | 2038 | | |
1983 | 2039 | | |
1984 | 2040 | | |
| 2041 | + | |
1985 | 2042 | | |
1986 | 2043 | | |
1987 | 2044 | | |
1988 | 2045 | | |
1989 | 2046 | | |
| 2047 | + | |
| 2048 | + | |
1990 | 2049 | | |
1991 | 2050 | | |
1992 | 2051 | | |
| |||
1995 | 2054 | | |
1996 | 2055 | | |
1997 | 2056 | | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
1998 | 2070 | | |
1999 | 2071 | | |
2000 | 2072 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
662 | 662 | | |
663 | 663 | | |
664 | 664 | | |
| 665 | + | |
| 666 | + | |
665 | 667 | | |
666 | 668 | | |
667 | 669 | | |
668 | 670 | | |
669 | 671 | | |
670 | | - | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
671 | 675 | | |
672 | 676 | | |
673 | 677 | | |
| |||
2482 | 2486 | | |
2483 | 2487 | | |
2484 | 2488 | | |
| 2489 | + | |
2485 | 2490 | | |
2486 | 2491 | | |
2487 | 2492 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
120 | | - | |
| 119 | + | |
| 120 | + | |
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
| 124 | + | |
| 125 | + | |
124 | 126 | | |
125 | 127 | | |
126 | 128 | | |
| |||
276 | 278 | | |
277 | 279 | | |
278 | 280 | | |
| 281 | + | |
279 | 282 | | |
280 | 283 | | |
281 | 284 | | |
| |||
0 commit comments