Commit 6577a09
feat(exec): Push dynamic filters through StreamingAggregation grouping keys (#17918)
Summary:
Pull Request resolved: #17918
Dynamic filters generated by a hash-join probe are pushed toward the
probe-side source by tracing each filtered column through the identity
projections of intervening operators. The trace stops at the first
operator that does not expose the filtered channel as an identity
projection.
`StreamingAggregation` did not register its grouping keys in
`identityProjections_`, unlike `HashAggregation`, so the trace broke at the
aggregation and the filter never reached the scan. A plan with a streaming
(segmented) aggregation between a hash-join probe and a table scan therefore
missed dynamic filtering on the aggregation's grouping keys.
Grouping keys are identity passthroughs to the output, so register them as
identity projections and let the existing Driver trace push dynamic filters
through to the source. No new operator support is needed.
Fixes #17827
Reviewed By: mbasmanova
Differential Revision: D109527298
fbshipit-source-id: 42ac6d6cd8ee358a3369926991b8d5c54975de8a1 parent 29dd5b5 commit 6577a09
2 files changed
Lines changed: 88 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
78 | 86 | | |
79 | 87 | | |
80 | 88 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1878 | 1878 | | |
1879 | 1879 | | |
1880 | 1880 | | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
| 1904 | + | |
| 1905 | + | |
| 1906 | + | |
| 1907 | + | |
| 1908 | + | |
| 1909 | + | |
| 1910 | + | |
| 1911 | + | |
| 1912 | + | |
| 1913 | + | |
| 1914 | + | |
| 1915 | + | |
| 1916 | + | |
| 1917 | + | |
| 1918 | + | |
| 1919 | + | |
| 1920 | + | |
| 1921 | + | |
| 1922 | + | |
| 1923 | + | |
| 1924 | + | |
| 1925 | + | |
| 1926 | + | |
| 1927 | + | |
| 1928 | + | |
| 1929 | + | |
| 1930 | + | |
| 1931 | + | |
| 1932 | + | |
| 1933 | + | |
| 1934 | + | |
| 1935 | + | |
| 1936 | + | |
| 1937 | + | |
| 1938 | + | |
| 1939 | + | |
| 1940 | + | |
| 1941 | + | |
| 1942 | + | |
| 1943 | + | |
| 1944 | + | |
| 1945 | + | |
| 1946 | + | |
| 1947 | + | |
| 1948 | + | |
| 1949 | + | |
| 1950 | + | |
| 1951 | + | |
| 1952 | + | |
| 1953 | + | |
| 1954 | + | |
| 1955 | + | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
| 1959 | + | |
| 1960 | + | |
1881 | 1961 | | |
1882 | 1962 | | |
1883 | 1963 | | |
| |||
0 commit comments