@@ -183,26 +183,29 @@ public void testMultisearchWithStats() {
183183 + " LogicalAggregate(group=[{0}], count=[COUNT()])\n "
184184 + " LogicalProject(type=[$8])\n "
185185 + " LogicalUnion(all=[true])\n "
186- + " LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],"
186+ + " LogicalFilter(condition=[=($7, 10)])\n "
187+ + " LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],"
187188 + " SAL=[$5], COMM=[$6], DEPTNO=[$7], type=['accounting':VARCHAR])\n "
188- + " LogicalFilter(condition=[=($7, 10)])\n "
189189 + " LogicalTableScan(table=[[scott, EMP]])\n "
190- + " LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],"
190+ + " LogicalFilter(condition=[=($7, 20)])\n "
191+ + " LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],"
191192 + " SAL=[$5], COMM=[$6], DEPTNO=[$7], type=['research':VARCHAR])\n "
192- + " LogicalFilter(condition=[=($7, 20)])\n "
193193 + " LogicalTableScan(table=[[scott, EMP]])\n " ;
194194 verifyLogical (root , expectedLogical );
195195
196+ // SparkSQL reflects Filter above Project due to flush logic
196197 String expectedSparkSql =
197198 "SELECT COUNT(*) `count`, `type`\n "
199+ + "FROM (SELECT *\n "
198200 + "FROM (SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`,"
199201 + " 'accounting' `type`\n "
200- + "FROM `scott`.`EMP`\n "
202+ + "FROM `scott`.`EMP`) `t` \n "
201203 + "WHERE `DEPTNO` = 10\n "
202204 + "UNION ALL\n "
203- + "SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`,"
205+ + "SELECT *\n "
206+ + "FROM (SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`,"
204207 + " 'research' `type`\n "
205- + "FROM `scott`.`EMP`\n "
208+ + "FROM `scott`.`EMP`) `t1` \n "
206209 + "WHERE `DEPTNO` = 20) `t3`\n "
207210 + "GROUP BY `type`" ;
208211 verifyPPLToSparkSQL (root , expectedSparkSql );
0 commit comments