AMashenkov commented on a change in pull request #9707:
URL: https://github.com/apache/ignite/pull/9707#discussion_r781894823



##########
File path: 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridSubqueryJoinOptimizerSelfTest.java
##########
@@ -893,6 +895,53 @@ public void testOptimizationShouldNotBeApplied6() {
         check(resSql, 2);
     }
 
+    /**
+     * Case when select subquery is under EXISTS operator.
+     */
+    @Test
+    public void testExistsOperatorWithSubqueryUnderSelect() {
+        String outerSqlTemplate = "SELECT (EXISTS (%s));";
+        String subSql1 = "SELECT id FROM dep WHERE id = 1";
+        String subSql2 = "SELECT 1 FROM dep WHERE id = 1";
+
+        check(String.format(outerSqlTemplate, subSql1), 2);
+
+        check(String.format(outerSqlTemplate, subSql2), 2);
+    }
+
+    /**
+     * Case when select subquery is under different possible operators.
+     */
+    @Test
+    public void testDifferentOperatorsWithSubqueryUnderSelect() {
+        String outerSqlTemplate = "SELECT (%s);";
+
+        List<String> subSelects = new ArrayList<>();
+
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) IN (1,-1)");
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) IS NOT NULL");
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) IS 1");
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) < 0");
+        subSelects.add("-(SELECT %s FROM dep WHERE id = 1)");
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) = 2");
+
+        for (String param : Lists.newArrayList("1", "2")) {
+            for (String subSelect : subSelects) {
+                String formattedSubSelect = String.format(subSelect, param);
+
+                check(String.format(outerSqlTemplate, formattedSubSelect), 2);
+            }
+        }
+
+        for (String param : Lists.newArrayList("id")) {
+            for (String subSelect : subSelects) {
+                String formattedSubSelect = String.format(subSelect, param);
+
+                check(String.format(outerSqlTemplate, formattedSubSelect), 1);
+            }
+        }

Review comment:
       ```suggestion
           for (String subSelect : subSelects) {
               String formattedSubSelect = String.format(subSelect, "id");
   
                check(String.format(outerSqlTemplate, formattedSubSelect), 1);
           }
   ```

##########
File path: 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridSubqueryJoinOptimizerSelfTest.java
##########
@@ -893,6 +895,53 @@ public void testOptimizationShouldNotBeApplied6() {
         check(resSql, 2);
     }
 
+    /**
+     * Case when select subquery is under EXISTS operator.
+     */
+    @Test
+    public void testExistsOperatorWithSubqueryUnderSelect() {
+        String outerSqlTemplate = "SELECT (EXISTS (%s));";
+        String subSql1 = "SELECT id FROM dep WHERE id = 1";
+        String subSql2 = "SELECT 1 FROM dep WHERE id = 1";
+
+        check(String.format(outerSqlTemplate, subSql1), 2);
+
+        check(String.format(outerSqlTemplate, subSql2), 2);
+    }
+
+    /**
+     * Case when select subquery is under different possible operators.
+     */
+    @Test
+    public void testDifferentOperatorsWithSubqueryUnderSelect() {
+        String outerSqlTemplate = "SELECT (%s);";
+
+        List<String> subSelects = new ArrayList<>();
+
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) IN (1,-1)");
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) IS NOT NULL");
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) IS 1");
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) < 0");
+        subSelects.add("-(SELECT %s FROM dep WHERE id = 1)");
+        subSelects.add("(SELECT %s FROM dep WHERE id = 1) = 2");
+
+        for (String param : Lists.newArrayList("1", "2")) {

Review comment:
       ```suggestion
           for (String param : Arrays.asList("1", "2")) {
   ```




-- 
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