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

caogaofei pushed a commit to branch ty/TableModelGrammar
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/ty/TableModelGrammar by this 
push:
     new 991a8111b46 only support one data region in table model
991a8111b46 is described below

commit 991a8111b46e158d3aeab88be1d180302641b95a
Author: Beyyes <[email protected]>
AuthorDate: Fri Apr 19 12:23:30 2024 +0800

    only support one data region in table model
---
 .../plan/relational/metadata/TableMetadataImpl.java         |  6 ++++--
 .../plan/relational/planner/optimizations/IndexScan.java    | 13 +++++++------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java
index 52ae6220dba..b9825f09e3b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java
@@ -239,8 +239,10 @@ public class TableMetadataImpl implements Metadata {
       List<String> attributeColumns) {
     // fixme, perfect the real metadata impl
     List<DeviceEntry> result = new ArrayList<>();
-    IDeviceID deviceID = new StringArrayDeviceID("db", "table1", "beijing", 
"a_1");
-    result.add(new DeviceEntry(deviceID, Arrays.asList("new", "low")));
+    IDeviceID deviceID1 = new StringArrayDeviceID("db", "table1", "beijing", 
"a_1");
+    IDeviceID deviceID2 = new StringArrayDeviceID("db", "table1", "beijing", 
"b_1");
+    result.add(new DeviceEntry(deviceID1, Arrays.asList("old", "low")));
+    result.add(new DeviceEntry(deviceID2, Arrays.asList("new", "high")));
     return result;
   }
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/IndexScan.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/IndexScan.java
index 55c9218d943..afde03f20ff 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/IndexScan.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/IndexScan.java
@@ -106,22 +106,23 @@ public class IndexScan implements RelationalPlanOptimizer 
{
       node.setDeviceEntries(deviceEntries);
 
       // TODO getDataPartition, Change globalTimeFilter to Filter
+      String database = "root." + 
context.getSessionInfo().getDatabaseName().get();
       IPartitionFetcher partitionFetcher = 
ClusterPartitionFetcher.getInstance();
       Filter globalTimeFilter = null;
       Set<String> deviceSet = new HashSet<>();
       for (DeviceEntry deviceEntry : deviceEntries) {
         StringArrayDeviceID arrayDeviceID = (StringArrayDeviceID) 
deviceEntry.getDeviceID();
         String device = arrayDeviceID.toString();
-        deviceSet.add(device);
+        deviceSet.add("root." + device);
       }
-      String database = "root." + 
context.getSessionInfo().getDatabaseName().get();
+
       DataPartition dataPartition =
           fetchDataPartitionByDevices(deviceSet, database, globalTimeFilter, 
partitionFetcher);
       context.getAnalysis().setDataPartition(dataPartition);
-      //      List<TRegionReplicaSet> regionReplicaList =
-      // dataPartition.getDataRegionReplicaSetWithTimeFilter
-      //                      
(((StringArrayDeviceID)deviceEntries.get(0).getDeviceID().toString(),
-      // globalTimeFilter);
+
+      if (dataPartition.getDataPartitionMap().size() != 1) {
+        throw new IllegalStateException("Table model can only process data 
only in data region!");
+      }
 
       // TODO add the real impl
       TRegionReplicaSet regionReplicaSet =

Reply via email to