This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/fixPlanVisitor in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 077be482ff0d534b296d6242ae0a54a562682436 Author: liuminghui233 <[email protected]> AuthorDate: Thu Mar 23 22:15:09 2023 +0800 add test --- .../db/it/alignbydevice/IoTDBAlignByDeviceIT.java | 108 +++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java index e9fa955cf9..90ad82e5a2 100644 --- a/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java @@ -192,6 +192,114 @@ public class IoTDBAlignByDeviceIT { } } + @Test + public void selectTestWithLimitOffset1() { + String[] retArray = + new String[] { + "1,root.vehicle.d1,999,null,null,null,null,", + "2,root.vehicle.d0,10000,40000,2.22,null,null,", + "3,root.vehicle.d0,null,null,3.33,null,null,", + "4,root.vehicle.d0,null,null,4.44,null,null,", + "50,root.vehicle.d0,10000,50000,null,null,null," + }; + + try (Connection connection = EnvFactory.getEnv().getConnection(); + Statement statement = connection.createStatement()) { + + try (ResultSet resultSet = + statement.executeQuery( + "select * from root.vehicle.** order by time asc limit 5 offset 1 align by device")) { + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + List<Integer> actualIndexToExpectedIndexList = + checkHeader( + resultSetMetaData, + "Time,Device,s0,s1,s2,s3,s4", + new int[] { + Types.TIMESTAMP, + Types.VARCHAR, + Types.INTEGER, + Types.BIGINT, + Types.FLOAT, + Types.VARCHAR, + Types.BOOLEAN + }); + + int cnt = 0; + while (resultSet.next()) { + String[] expectedStrings = retArray[cnt].split(","); + StringBuilder expectedBuilder = new StringBuilder(); + StringBuilder actualBuilder = new StringBuilder(); + for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) { + actualBuilder.append(resultSet.getString(i)).append(","); + expectedBuilder + .append(expectedStrings[actualIndexToExpectedIndexList.get(i - 1)]) + .append(","); + } + Assert.assertEquals(expectedBuilder.toString(), actualBuilder.toString()); + cnt++; + } + Assert.assertEquals(retArray.length, cnt); + } + } catch (Exception e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + + @Test + public void selectTestWithLimitOffset2() { + String[] retArray = + new String[] { + "1,root.vehicle.d1,999,null,null,null,null,", + "946684800000,root.vehicle.d0,null,100,null,good,null,", + "1000,root.vehicle.d0,22222,55555,1000.11,null,null,", + "106,root.vehicle.d0,99,null,null,null,null,", + "105,root.vehicle.d0,99,199,11.11,null,null,", + }; + + try (Connection connection = EnvFactory.getEnv().getConnection(); + Statement statement = connection.createStatement()) { + + try (ResultSet resultSet = + statement.executeQuery( + "select * from root.vehicle.** order by device desc, time desc limit 5 offset 1 align by device")) { + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + List<Integer> actualIndexToExpectedIndexList = + checkHeader( + resultSetMetaData, + "Time,Device,s0,s1,s2,s3,s4", + new int[] { + Types.TIMESTAMP, + Types.VARCHAR, + Types.INTEGER, + Types.BIGINT, + Types.FLOAT, + Types.VARCHAR, + Types.BOOLEAN + }); + + int cnt = 0; + while (resultSet.next()) { + String[] expectedStrings = retArray[cnt].split(","); + StringBuilder expectedBuilder = new StringBuilder(); + StringBuilder actualBuilder = new StringBuilder(); + for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) { + actualBuilder.append(resultSet.getString(i)).append(","); + expectedBuilder + .append(expectedStrings[actualIndexToExpectedIndexList.get(i - 1)]) + .append(","); + } + Assert.assertEquals(expectedBuilder.toString(), actualBuilder.toString()); + cnt++; + } + Assert.assertEquals(retArray.length, cnt); + } + } catch (Exception e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + @Test public void selectWithDuplicatedPathsTest() { String[] retArray =
