This is an automated email from the ASF dual-hosted git repository.

cancai pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/main by this push:
     new 638d3c4331 [CALCITE-6856] Add JOIN test for MongoDB adapter
638d3c4331 is described below

commit 638d3c433182840fc51b5ec8dd9077a50947269f
Author: xuyu <[email protected]>
AuthorDate: Tue Feb 25 22:00:23 2025 +0800

    [CALCITE-6856] Add JOIN test for MongoDB adapter
---
 .../calcite/adapter/mongodb/MongoAdapterTest.java   | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git 
a/mongodb/src/test/java/org/apache/calcite/adapter/mongodb/MongoAdapterTest.java
 
b/mongodb/src/test/java/org/apache/calcite/adapter/mongodb/MongoAdapterTest.java
index 483aa108b3..0aeb6ef87c 100644
--- 
a/mongodb/src/test/java/org/apache/calcite/adapter/mongodb/MongoAdapterTest.java
+++ 
b/mongodb/src/test/java/org/apache/calcite/adapter/mongodb/MongoAdapterTest.java
@@ -217,6 +217,27 @@ private CalciteAssert.AssertThat assertModel(URL url) {
                 "{$project: {STATE: '$state', ID: '$_id'}}"));
   }
 
+  @Test void testJoin() {
+    assertModel(MODEL)
+        .query("select b.state, a.id from zips as a join zips as b on 
a.id=b.id where a.id='02401' "
+            + "fetch next 3 rows only")
+        .returnsOrdered("STATE=MA; ID=02401")
+        .queryContains(
+            mongoChecker("{$match: {_id: \"02401\"}}",
+                "{$project: {ID: '$_id'}}",
+                "{$sort: {ID: 1}}"));
+
+    assertModel(MODEL)
+        .query("select b.state, a.id from zips as a join zips as b on 
a.id=b.id "
+            + "fetch next 3 rows only")
+        .returnsOrdered("STATE=MA; ID=01701",
+            "STATE=MA; ID=02154",
+            "STATE=MA; ID=02401")
+        .queryContains(
+            mongoChecker("{$project: {ID: '$_id'}}",
+                "{$sort: {ID: 1}}"));
+  }
+
   @Disabled
   @Test void testFilterSort() {
     // LONGITUDE and LATITUDE are null because of CALCITE-194.

Reply via email to