Repository navigation
Commit fbcc6fd
committed
Keep the upsert match filter flat for composite keys
An upsert with two or more join columns built one Or disjunct per key.
PyArrow flattens that chain and overflows its stack from about 1,000 keys.
The scan, the insert filter and the overwrite filter all crashed.
Build one In per join column instead. Do the exact key match in Arrow
with an anti join. Append back the rows that the overwrite filter removes
but does not update.
Closes #35081 parent ebbc0ba commit fbcc6fd
3 files changed
Lines changed: 112 additions & 44 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
895 | 895 | | |
896 | 896 | | |
897 | 897 | | |
898 | | - | |
899 | 898 | | |
900 | 899 | | |
901 | 900 | | |
| |||
926 | 925 | | |
927 | 926 | | |
928 | 927 | | |
929 | | - | |
930 | | - | |
931 | | - | |
932 | 928 | | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
933 | 932 | | |
934 | | - | |
935 | | - | |
936 | | - | |
937 | | - | |
938 | | - | |
939 | | - | |
940 | | - | |
941 | | - | |
942 | | - | |
943 | | - | |
944 | | - | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
945 | 936 | | |
946 | 937 | | |
947 | | - | |
948 | 938 | | |
949 | 939 | | |
950 | 940 | | |
| |||
958 | 948 | | |
959 | 949 | | |
960 | 950 | | |
961 | | - | |
962 | | - | |
963 | | - | |
964 | 951 | | |
965 | | - | |
966 | 952 | | |
967 | 953 | | |
968 | | - | |
969 | | - | |
970 | | - | |
971 | | - | |
972 | | - | |
973 | | - | |
| 954 | + | |
974 | 955 | | |
975 | 956 | | |
976 | 957 | | |
977 | 958 | | |
978 | 959 | | |
979 | 960 | | |
980 | 961 | | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
981 | 970 | | |
982 | 971 | | |
983 | | - | |
| 972 | + | |
984 | 973 | | |
985 | 974 | | |
986 | 975 | | |
987 | 976 | | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
988 | 980 | | |
989 | 981 | | |
990 | 982 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | 25 | | |
27 | | - | |
28 | 26 | | |
29 | | - | |
30 | 27 | | |
31 | 28 | | |
32 | 29 | | |
33 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
34 | 38 | | |
35 | 39 | | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
49 | 52 | | |
50 | 53 | | |
51 | 54 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
927 | 927 | | |
928 | 928 | | |
929 | 929 | | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 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 | + | |
0 commit comments