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

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


The following commit(s) were added to refs/heads/beyyes/topk_streamsort by this 
push:
     new 3bf6004cb99 fix it
3bf6004cb99 is described below

commit 3bf6004cb998a7da988d590ecf7f890128805c27
Author: Beyyes <[email protected]>
AuthorDate: Mon Jul 29 16:20:15 2024 +0800

    fix it
---
 .../it/query/old/orderBy/IoTDBStreamSortIT.java    | 77 ++++++++++++++++++++--
 1 file changed, 71 insertions(+), 6 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/orderBy/IoTDBStreamSortIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/orderBy/IoTDBStreamSortIT.java
index cbc5b3d6900..4b1924bbcca 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/orderBy/IoTDBStreamSortIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/orderBy/IoTDBStreamSortIT.java
@@ -31,9 +31,14 @@ import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 
 import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
 import java.sql.Statement;
 
 import static org.apache.iotdb.db.it.utils.TestUtils.tableResultSetEqualTest;
+import static 
org.apache.iotdb.relational.it.query.old.aligned.TableUtils.USE_DB;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
 @RunWith(IoTDBTestRunner.class)
@@ -113,6 +118,66 @@ public class IoTDBStreamSortIT {
     }
   }
 
+  // ordinal data
+  public static final String[][] RES =
+      new String[][] {
+        {"0", "3", "2947483648", "231.2121", "coconut", "false"},
+        {"20", "2", "2147483648", "434.12", "pineapple", "true"},
+        {"40", "1", "2247483648", "12.123", "apricot", "true"},
+        {"80", "9", "2147483646", "43.12", "apple", "false"},
+        {"100", "8", "2147483964", "4654.231", "papaya", "true"},
+        {"31536000000", "6", "2147483650", "1231.21", "banana", "true"},
+        {"31536000100", "10", "3147483648", "231.55", "pumelo", "false"},
+        {"31536000500", "4", "2147493648", "213.1", "peach", "false"},
+        {"31536001000", "5", "2149783648", "56.32", "orange", "false"},
+        {"31536010000", "7", "2147983648", "213.112", "lemon", "true"},
+        {"31536100000", "11", "2147468648", "54.121", "pitaya", "false"},
+        {"41536000000", "12", "2146483648", "45.231", "strawberry", "false"},
+        {"41536000020", "14", "2907483648", "231.34", "cherry", "false"},
+        {"41536900000", "13", "2107483648", "54.12", "lychee", "true"},
+        {"51536000000", "15", "3147483648", "235.213", "watermelon", "true"},
+      };
+
+  private void checkHeader(ResultSetMetaData resultSetMetaData, String[] title)
+      throws SQLException {
+    for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
+      assertEquals(title[i - 1], resultSetMetaData.getColumnName(i));
+    }
+  }
+
+  private void testNormalOrderBy(String sql, int[] ans) {
+    try (Connection connection = EnvFactory.getEnv().getTableConnection();
+        Statement statement = connection.createStatement()) {
+      statement.execute(USE_DB);
+      try (ResultSet resultSet = statement.executeQuery(sql)) {
+        ResultSetMetaData metaData = resultSet.getMetaData();
+        checkHeader(metaData, new String[] {"Time", "num", "bigNum", 
"floatNum", "str", "bool"});
+        int i = 0;
+        while (resultSet.next()) {
+
+          long actualTime = resultSet.getLong(1);
+          String actualNum = resultSet.getString(2);
+          String actualBigNum = resultSet.getString(3);
+          double actualFloatNum = resultSet.getDouble(4);
+          String actualStr = resultSet.getString(5);
+          String actualBool = resultSet.getString(6);
+
+          assertEquals(Long.parseLong(RES[ans[i]][0]), actualTime);
+          assertEquals(RES[ans[i]][1], actualNum);
+          assertEquals(RES[ans[i]][2], actualBigNum);
+          assertEquals(Double.parseDouble(RES[ans[i]][3]), actualFloatNum, 
0.0001);
+          assertEquals(RES[ans[i]][4], actualStr);
+          assertEquals(RES[ans[i]][5], actualBool);
+          i++;
+        }
+        assertEquals(i, ans.length);
+      }
+    } catch (Exception e) {
+      e.printStackTrace();
+      fail();
+    }
+  }
+
   @Test
   public void sortAttributeTest() {
     String[] expectedHeader =
@@ -121,14 +186,14 @@ public class IoTDBStreamSortIT {
         };
     String[] retArray =
         new String[] {
-          
"1970-01-01T08:00:00.000+08:00,d1,l1,c,d,3,2947483648,231.2121,coconut,false",
-          
"1971-01-01T08:01:40.000+08:00,d1,l1,c,d,11,2147468648,54.121,pitaya,false",
-          
"1971-01-01T08:00:00.000+08:00,d1,l1,c,d,6,2147483650,1231.21,banana,true",
-          
"1971-01-01T08:00:00.000+08:00,d2,l1,d,c,6,2147483650,1231.21,banana,true",
-          
"1970-01-01T08:00:00.000+08:00,d2,l1,d,c,3,2947483648,231.2121,coconut,false"
+          
"1971-01-01T00:01:40.000Z,d2,l1,d,c,11,2147468648,54.121,pitaya,false,",
+          
"1970-01-01T00:00:00.040Z,d1,l3,t,a,1,2247483648,12.123,apricot,true,",
+          "1971-01-01T00:00:00.500Z,d1,l3,t,a,4,2147493648,213.1,peach,false,",
+          
"1971-04-26T17:46:40.020Z,d1,l3,t,a,14,2907483648,231.34,cherry,false,",
+          
"1970-01-01T00:00:00.020Z,d2,l2,vv,null,2,2147483648,434.12,pineapple,true,"
         };
     tableResultSetEqualTest(
-        "select * from table0 order by attr1, time asc offset 8 limit 5",
+        "select \"time\", \"device\", \"level\", \"attr1\", \"attr2\", 
\"num\", \"bignum\", \"floatnum\", \"str\", \"bool\" from table0 order by 
attr1, level desc, time asc offset 5 limit 5",
         expectedHeader,
         retArray,
         DATABASE_NAME);

Reply via email to