vlsi commented on a change in pull request #2613:
URL: https://github.com/apache/calcite/pull/2613#discussion_r764702164



##########
File path: core/src/test/java/org/apache/calcite/test/RelMetadataTest.java
##########
@@ -2482,6 +2482,41 @@ private void checkPredicates(RelOptCluster cluster, 
RelOptTable empTable,
     assertThat(inputRef1.getIdentifier(), is(inputRef2.getIdentifier()));
   }
 
+  @Test void testExpressionLineageConjuntiveExpression() {
+    // empno is column 0 in catalog.sales.emp
+    // ename is column 1 in catalog.sales.emp
+    // deptno is column 7 in catalog.sales.emp
+    final RelNode rel = convertSql("select (empno = 1 or ename = 'abc') and 
deptno > 1 from emp");
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
+
+    final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
+    final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
+    assertThat(r.size(), is(1));

Review comment:
       It is sad when an assertion like this fails. It says like "expected 1 
got 2", and you have absolutely no clue why 1 was expected, what caused 2 and 
so on.
   
   `assert(size)` before asserting collection contents is almost always a bad 
idea. There are corner cases like `assertAll`, soft asserts, etc, however, you 
are not using them here.
   
   In this case, I would suggest removing `assert(size` and use 
`set.toString()` with the relevant assertion message.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to