You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2026/10/01 08:53:40 UTC

[M] Change in asterixdb[master]: [ASTERIXDB-3902][TEST] Fix golden plans of vtree-index-only-join

From Hongyu Shi <le...@gmail.com>:

Hongyu Shi has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21958?usp=email )


Change subject: [ASTERIXDB-3902][TEST] Fix golden plans of vtree-index-only-join
......................................................................

[ASTERIXDB-3902][TEST] Fix golden plans of vtree-index-only-join

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
Fix the golden plans so vtree-index-only-join passes in
SqlppAnalyzedExecutionTest.

Generated-by: Claude Opus 5.5 <no...@anthropic.com>
Change-Id: I6c59c966377f203abf92dc56adf4f3da70f6e430
---
A asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/vector/vtree-index-only-join/vtree-index-only-join.05.plan
A asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/vector/vtree-index-only-join/vtree-index-only-join.07.plan
2 files changed, 120 insertions(+), 0 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/58/21958/1

diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/vector/vtree-index-only-join/vtree-index-only-join.05.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/vector/vtree-index-only-join/vtree-index-only-join.05.plan
new file mode 100644
index 0000000..3ee38bd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/vector/vtree-index-only-join/vtree-index-only-join.05.plan
@@ -0,0 +1,54 @@
+distribute result [$$56]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    assign [$$56] <- [{"label": $$67, "year": $$76}] project: [$$56]
+    -- ASSIGN  |PARTITIONED|
+      exchange
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        order (ASC, $$76)
+        -- STABLE_SORT [$$76(ASC)]  |PARTITIONED|
+          exchange
+          -- RANGE_PARTITION_EXCHANGE [$$76(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+            project ([$$67, $$76])
+            -- STREAM_PROJECT  |PARTITIONED|
+              exchange
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                join (eq($$74, $$60))
+                -- HYBRID_HASH_JOIN [$$74][$$60]  |PARTITIONED|
+                  exchange
+                  -- HASH_PARTITION_EXCHANGE [$$74]  |PARTITIONED|
+                    limit 3
+                    -- STREAM_LIMIT  |UNPARTITIONED|
+                      project ([$$74, $$76])
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        exchange
+                        -- SORT_MERGE_EXCHANGE [$$75(ASC) ]  |PARTITIONED|
+                          limit 3
+                          -- STREAM_LIMIT  |PARTITIONED|
+                            exchange
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              order (topK: 3) (ASC, $$75)
+                              -- STABLE_SORT [topK: 3] [$$75(ASC)]  |PARTITIONED|
+                                exchange
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  unnest-map [$$74, $$75, $$76] <- index-search("idx_emb", 8, "Default", "test", "Docs", false, false, true, 5, $$69, $$70, $$71, $$72, $$73)
+                                  -- VECTOR_SEARCH  |PARTITIONED|
+                                    exchange
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      assign [$$69, $$70, $$71, $$72, $$73] <- [array: [ 0.0, 0.0, 0.0, 0.0 ], 3, "euclidean", 1.0, 1]
+                                      -- ASSIGN  |PARTITIONED|
+                                        empty-tuple-source
+                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                  exchange
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    assign [$$67] <- [$$l.getField(1)] project: [$$67, $$60]
+                    -- ASSIGN  |PARTITIONED|
+                      exchange
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$60, $$l] <- test.Labels
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/vector/vtree-index-only-join/vtree-index-only-join.07.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/vector/vtree-index-only-join/vtree-index-only-join.07.plan
new file mode 100644
index 0000000..6ac24d6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/vector/vtree-index-only-join/vtree-index-only-join.07.plan
@@ -0,0 +1,66 @@
+distribute result [$$58]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    assign [$$58] <- [{"label": $$70, "year": $$66, "title": $$67}] project: [$$58]
+    -- ASSIGN  |PARTITIONED|
+      exchange
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        order (ASC, $$66)
+        -- STABLE_SORT [$$66(ASC)]  |PARTITIONED|
+          exchange
+          -- RANGE_PARTITION_EXCHANGE [$$66(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+            project ([$$70, $$66, $$67])
+            -- STREAM_PROJECT  |PARTITIONED|
+              exchange
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                join (eq($$61, $$62))
+                -- HYBRID_HASH_JOIN [$$61][$$62]  |PARTITIONED|
+                  exchange
+                  -- HASH_PARTITION_EXCHANGE [$$61]  |PARTITIONED|
+                    limit 3
+                    -- STREAM_LIMIT  |UNPARTITIONED|
+                      project ([$$66, $$67, $$61])
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        exchange
+                        -- SORT_MERGE_EXCHANGE [$$60(ASC) ]  |PARTITIONED|
+                          limit 3
+                          -- STREAM_LIMIT  |PARTITIONED|
+                            exchange
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              order (topK: 3) (ASC, $$60)
+                              -- STABLE_SORT [topK: 3] [$$60(ASC)]  |PARTITIONED|
+                                exchange
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  assign [$$60, $$67, $$66] <- [euclidean-distance($$d.getField(2), array: [ 0.0, 0.0, 0.0, 0.0 ]), $$d.getField("title"), $$d.getField(1)] project: [$$66, $$67, $$61, $$60]
+                                  -- ASSIGN  |PARTITIONED|
+                                    exchange
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      unnest-map [$$61, $$d] <- index-search("Docs", 0, "Default", "test", "Docs", false, false, 1, $$78, 1, $$78, true, true, true)
+                                      -- BTREE_SEARCH  |PARTITIONED|
+                                        exchange
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          order (ASC, $$78)
+                                          -- STABLE_SORT [$$78(ASC)]  |PARTITIONED|
+                                            exchange
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              unnest-map [$$78] <- index-search("idx_emb", 8, "Default", "test", "Docs", false, false, false, 5, $$73, $$74, $$75, $$76, $$77)
+                                              -- VECTOR_SEARCH  |PARTITIONED|
+                                                exchange
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  assign [$$73, $$74, $$75, $$76, $$77] <- [array: [ 0.0, 0.0, 0.0, 0.0 ], 3, "euclidean", 1.0, 1]
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    empty-tuple-source
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                  exchange
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    assign [$$70] <- [$$l.getField(1)] project: [$$70, $$62]
+                    -- ASSIGN  |PARTITIONED|
+                      exchange
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$62, $$l] <- test.Labels
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21958?usp=email
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I6c59c966377f203abf92dc56adf4f3da70f6e430
Gerrit-Change-Number: 21958
Gerrit-PatchSet: 1
Gerrit-Owner: Hongyu Shi <le...@gmail.com>