@@ -1923,10 +1923,9 @@ public void testDoNotPushDownIsNullFilterPastLookupJoin() {
1923
1923
* uages{f}#10 AS language_code#4, last_name{f}#11, long_noidx{f}#17, salary{f}#12, language_name{f}#19]]
1924
1924
* \_Limit[1000[INTEGER],false]
1925
1925
* \_Filter[language_name{f}#19 > a[KEYWORD]]
1926
- * \_Join[LEFT,[languages{f}#10],[languages{f}#10],[language_code{f}#18]]
1926
+ * \_Join[LEFT,[languages{f}#10],[languages{f}#10],[language_code{f}#18],false,language_name{f}#19 > a[KEYWORD] ]
1927
1927
* |_EsRelation[test][_meta_field{f}#13, emp_no{f}#7, first_name{f}#8, ge..]
1928
- * \_Filter[language_name{f}#19 > a[KEYWORD]]
1929
- * \_EsRelation[languages_lookup][LOOKUP][language_code{f}#18, language_name{f}#19]
1928
+ * \_EsRelation[languages_lookup][LOOKUP][language_code{f}#18, language_name{f}#19]
1930
1929
*/
1931
1930
public void testPushDownGreaterThanFilterPastLookupJoin () {
1932
1931
var plan = plan ("""
@@ -1940,8 +1939,8 @@ public void testPushDownGreaterThanFilterPastLookupJoin() {
1940
1939
var limit = as (project .child (), Limit .class );
1941
1940
var filter = as (limit .child (), Filter .class );
1942
1941
var join = as (filter .child (), Join .class );
1943
- var right = as (join .right (), Filter .class );
1944
- assertThat (right . condition ().toString (), is ("language_name > \" a\" " ));
1942
+ var right = as (join .right (), EsRelation .class );
1943
+ assertThat (join . optionalRightHandFilters ().toString (), is ("language_name > \" a\" " ));
1945
1944
}
1946
1945
1947
1946
/**
@@ -1970,13 +1969,12 @@ public void testDoNotPushDownCoalesceFilterPastLookupJoin() {
1970
1969
1971
1970
/**
1972
1971
* Project[[_meta_field{f}#13, emp_no{f}#7, first_name{f}#8, gender{f}#9, hire_date{f}#14, job{f}#15, job.raw{f}#16, lang
1973
- * uages{f}#10 AS language_code#4, last_name{f}#11, long_noidx{f}#17, salary{f}#12, language_name{f}#19]]
1972
+ *uages{f}#10 AS language_code#4, last_name{f}#11, long_noidx{f}#17, salary{f}#12, language_name{f}#19]]
1974
1973
* \_Limit[1000[INTEGER],false]
1975
1974
* \_Filter[ISNOTNULL(language_name{f}#19)]
1976
- * \_Join[LEFT,[languages{f}#10],[languages{f}#10],[language_code{f}#18]]
1975
+ * \_Join[LEFT,[languages{f}#10],[languages{f}#10],[language_code{f}#18],false,ISNOTNULL(language_name{f}#19) ]
1977
1976
* |_EsRelation[test][_meta_field{f}#13, emp_no{f}#7, first_name{f}#8, ge..]
1978
- * \_Filter[ISNOTNULL(language_name{f}#19)]
1979
- * \_EsRelation[languages_lookup][LOOKUP][language_code{f}#18, language_name{f}#19]
1977
+ * \_EsRelation[languages_lookup][LOOKUP][language_code{f}#18, language_name{f}#19]
1980
1978
*/
1981
1979
public void testPushDownIsNotNullFilterPastLookupJoin () {
1982
1980
var plan = plan ("""
@@ -1990,8 +1988,8 @@ public void testPushDownIsNotNullFilterPastLookupJoin() {
1990
1988
var limit = as (project .child (), Limit .class );
1991
1989
var filter = as (limit .child (), Filter .class );
1992
1990
var join = as (filter .child (), Join .class );
1993
- var right = as (join .right (), Filter .class );
1994
- assertThat (right . condition ().toString (), is ("language_name IS NOT NULL" ));
1991
+ var right = as (join .right (), EsRelation .class );
1992
+ assertThat (join . optionalRightHandFilters ().toString (), is ("language_name IS NOT NULL" ));
1995
1993
}
1996
1994
1997
1995
/**
@@ -7150,14 +7148,13 @@ public void testLookupJoinPushDownFilterOnLeftSideField() {
7150
7148
* Expects
7151
7149
*
7152
7150
* <pre>{@code
7153
- * Project[[_meta_field{f}#13, emp_no{f}#7, first_name{f}#8, gender{f}#9, hire_date{f}#14, job{f}#15, job.raw{f}#16,
7154
- * languages {f}#10 AS language_code#4, last_name{f}#11, long_noidx{f}#17, salary{f}#12, language_name{f}#19]]
7151
+ * Project[[_meta_field{f}#13, emp_no{f}#7, first_name{f}#8, gender{f}#9, hire_date{f}#14, job{f}#15, job.raw{f}#16, lang
7152
+ * uages {f}#10 AS language_code#4, last_name{f}#11, long_noidx{f}#17, salary{f}#12, language_name{f}#19]]
7155
7153
* \_Limit[1000[INTEGER],false]
7156
- * \_Filter[language_name{f}#19 == [45 6e 67 6c 69 73 68] [KEYWORD]]
7157
- * \_Join[LEFT,[languages{f}#10],[languages{f}#10],[language_code{f}#18]]
7154
+ * \_Filter[language_name{f}#19 == English [KEYWORD]]
7155
+ * \_Join[LEFT,[languages{f}#10],[languages{f}#10],[language_code{f}#18],false,language_name{f}#19 == English[KEYWORD] ]
7158
7156
* |_EsRelation[test][_meta_field{f}#13, emp_no{f}#7, first_name{f}#8, ge..]
7159
- * \_Filter[language_name{f}#19 == English[KEYWORD]]
7160
- * \_EsRelation[languages_lookup][LOOKUP][language_code{f}#18, language_name{f}#19]
7157
+ * \_EsRelation[languages_lookup][LOOKUP][language_code{f}#18, language_name{f}#19]
7161
7158
* }</pre>
7162
7159
*/
7163
7160
public void testLookupJoinPushDownDisabledForLookupField () {
@@ -7186,9 +7183,8 @@ public void testLookupJoinPushDownDisabledForLookupField() {
7186
7183
assertThat (join .config ().type (), equalTo (JoinTypes .LEFT ));
7187
7184
7188
7185
var leftRel = as (join .left (), EsRelation .class );
7189
- var filterRight = as (join .right (), Filter .class );
7190
- assertEquals ("language_name == \" English\" " , filterRight .condition ().toString ());
7191
- var joinRightEsRelation = as (filterRight .child (), EsRelation .class );
7186
+ assertEquals ("language_name == \" English\" " , join .optionalRightHandFilters ().toString ());
7187
+ var joinRightEsRelation = as (join .right (), EsRelation .class );
7192
7188
7193
7189
}
7194
7190
@@ -7198,11 +7194,11 @@ public void testLookupJoinPushDownDisabledForLookupField() {
7198
7194
* Expects
7199
7195
*
7200
7196
* <pre>{@code
7201
- * Project[[_meta_field{f}#14, emp_no{f}#8, first_name{f}#9, gender{f}#10, hire_date{f}#15, job{f}#16, job.raw{f}#17,
7202
- * languages {f}#11 AS language_code#4, last_name{f}#12, long_noidx{f}#18, salary{f}#13, language_name{f}#20]]
7197
+ * Project[[_meta_field{f}#14, emp_no{f}#8, first_name{f}#9, gender{f}#10, hire_date{f}#15, job{f}#16, job.raw{f}#17, lan
7198
+ * guages {f}#11 AS language_code#4, last_name{f}#12, long_noidx{f}#18, salary{f}#13, language_name{f}#20]]
7203
7199
* \_Limit[1000[INTEGER],false]
7204
- * \_Filter[language_name{f}#20 == [45 6e 67 6c 69 73 68] [KEYWORD]]
7205
- * \_Join[LEFT,[languages{f}#11],[languages{f}#11],[language_code{f}#19]]
7200
+ * \_Filter[language_name{f}#20 == English [KEYWORD]]
7201
+ * \_Join[LEFT,[languages{f}#11],[languages{f}#11],[language_code{f}#19],false,language_name{f}#20 == English[KEYWORD] ]
7206
7202
* |_Filter[emp_no{f}#8 > 1[INTEGER]]
7207
7203
* | \_EsRelation[test][_meta_field{f}#14, emp_no{f}#8, first_name{f}#9, ge..]
7208
7204
* \_EsRelation[languages_lookup][LOOKUP][language_code{f}#19, language_name{f}#20]
@@ -7242,9 +7238,8 @@ public void testLookupJoinPushDownSeparatedForConjunctionBetweenLeftAndRightFiel
7242
7238
assertThat (literal .value (), equalTo (1 ));
7243
7239
7244
7240
var leftRel = as (filter .child (), EsRelation .class );
7245
- var filterRight = as (join .right (), Filter .class );
7246
- assertEquals ("language_name == \" English\" " , filterRight .condition ().toString ());
7247
- var rightRel = as (filterRight .child (), EsRelation .class );
7241
+ assertEquals ("language_name == \" English\" " , join .optionalRightHandFilters ().toString ());
7242
+ var rightRel = as (join .right (), EsRelation .class );
7248
7243
}
7249
7244
7250
7245
/**
0 commit comments