This is an automated email from the ASF dual-hosted git repository. yongzao pushed a commit to branch revert-transformer-update in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5c237882b5a8ec5ecaa35b0d29e5f1ef4181ea5f Author: Yongzao <[email protected]> AuthorDate: Thu Sep 11 13:40:52 2025 +0800 Update AINodeInferenceSQLIT.java --- .../iotdb/ainode/it/AINodeInferenceSQLIT.java | 114 +++++++++++++++------ 1 file changed, 82 insertions(+), 32 deletions(-) diff --git a/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeInferenceSQLIT.java b/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeInferenceSQLIT.java index c18e24a793a..2fcc180a3e3 100644 --- a/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeInferenceSQLIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeInferenceSQLIT.java @@ -56,26 +56,12 @@ public class AINodeInferenceSQLIT { "CREATE TIMESERIES root.AI.s1 WITH DATATYPE=DOUBLE, ENCODING=RLE", "CREATE TIMESERIES root.AI.s2 WITH DATATYPE=INT32, ENCODING=RLE", "CREATE TIMESERIES root.AI.s3 WITH DATATYPE=INT64, ENCODING=RLE", - "insert into root.AI(timestamp,s0,s1,s2,s3) values(1,1.0,2.0,3,4)", - "insert into root.AI(timestamp,s0,s1,s2,s3) values(2,2.0,3.0,4,5)", - "insert into root.AI(timestamp,s0,s1,s2,s3) values(3,3.0,4.0,5,6)", - "insert into root.AI(timestamp,s0,s1,s2,s3) values(4,4.0,5.0,6,7)", - "insert into root.AI(timestamp,s0,s1,s2,s3) values(5,5.0,6.0,7,8)", - "insert into root.AI(timestamp,s0,s1,s2,s3) values(6,6.0,7.0,8,9)", - "insert into root.AI(timestamp,s0,s1,s2,s3) values(7,7.0,8.0,9,10)", }; static String[] WRITE_SQL_IN_TABLE = new String[] { "CREATE DATABASE root", "CREATE TABLE root.AI (s0 FLOAT FIELD, s1 DOUBLE FIELD, s2 INT32 FIELD, s3 INT64 FIELD)", - "insert into root.AI(time,s0,s1,s2,s3) values(1,1.0,2.0,3,4)", - "insert into root.AI(time,s0,s1,s2,s3) values(2,2.0,3.0,4,5)", - "insert into root.AI(time,s0,s1,s2,s3) values(3,3.0,4.0,5,6)", - "insert into root.AI(time,s0,s1,s2,s3) values(4,4.0,5.0,6,7)", - "insert into root.AI(time,s0,s1,s2,s3) values(5,5.0,6.0,7,8)", - "insert into root.AI(time,s0,s1,s2,s3) values(6,6.0,7.0,8,9)", - "insert into root.AI(time,s0,s1,s2,s3) values(7,7.0,8.0,9,10)", }; @BeforeClass @@ -84,6 +70,24 @@ public class AINodeInferenceSQLIT { EnvFactory.getEnv().initClusterEnvironment(1, 1); prepareData(WRITE_SQL_IN_TREE); prepareTableData(WRITE_SQL_IN_TABLE); + try (Connection connection = EnvFactory.getEnv().getConnection(BaseEnv.TREE_SQL_DIALECT); + Statement statement = connection.createStatement()) { + for (int i = 0; i < 2880; i++) { + statement.execute( + String.format( + "INSERT INTO root.AI(timestamp,s0,s1,s2,s3) VALUES(%d,%f,%f,%d,%d)", + i, (float) i, (double) i, i, i)); + } + } + try (Connection connection = EnvFactory.getEnv().getConnection(BaseEnv.TABLE_SQL_DIALECT); + Statement statement = connection.createStatement()) { + for (int i = 0; i < 2880; i++) { + statement.execute( + String.format( + "INSERT INTO root.AI(time,s0,s1,s2,s3) VALUES(%d,%f,%f,%d,%d)", + i, (float) i, (double) i, i, i)); + } + } } @AfterClass @@ -109,6 +113,29 @@ public class AINodeInferenceSQLIT { } public void callInferenceTest(Statement statement) throws SQLException { + // SQL0: Invoke timer-sundial and timer-xl to inference, the result should success + try (ResultSet resultSet = + statement.executeQuery( + "CALL INFERENCE(sundial, \"select s1 from root.AI\", generateTime=true, predict_length=720)")) { + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + checkHeader(resultSetMetaData, "Time,output0"); + int count = 0; + while (resultSet.next()) { + count++; + } + assertEquals(720, count); + } + try (ResultSet resultSet = + statement.executeQuery( + "CALL INFERENCE(timer_xl, \"select s2 from root.AI\", generateTime=true, predict_length=256)")) { + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + checkHeader(resultSetMetaData, "Time,output0"); + int count = 0; + while (resultSet.next()) { + count++; + } + assertEquals(256, count); + } // SQL1: user-defined model inferences multi-columns with generateTime=true String sql1 = "CALL INFERENCE(identity, \"select s0,s1,s2,s3 from root.AI\", generateTime=true)"; @@ -171,15 +198,15 @@ public class AINodeInferenceSQLIT { // assertEquals(3, count); // } - try (ResultSet resultSet = statement.executeQuery(sql4)) { - ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - checkHeader(resultSetMetaData, "Time,output0"); - int count = 0; - while (resultSet.next()) { - count++; - } - assertEquals(6, count); - } + // try (ResultSet resultSet = statement.executeQuery(sql4)) { + // ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + // checkHeader(resultSetMetaData, "Time,output0"); + // int count = 0; + // while (resultSet.next()) { + // count++; + // } + // assertEquals(6, count); + // } } @Test @@ -219,6 +246,29 @@ public class AINodeInferenceSQLIT { public void selectForecastTestInTable() throws SQLException { try (Connection connection = EnvFactory.getEnv().getConnection(BaseEnv.TABLE_SQL_DIALECT); Statement statement = connection.createStatement()) { + // SQL0: Invoke timer-sundial and timer-xl to forecast, the result should success + try (ResultSet resultSet = + statement.executeQuery( + "SELECT * FROM FORECAST(model_id=>'sundial', input=>(SELECT time,s1 FROM root.AI) ORDER BY time, output_length=>720)")) { + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + checkHeader(resultSetMetaData, "time,s1"); + int count = 0; + while (resultSet.next()) { + count++; + } + assertEquals(720, count); + } + try (ResultSet resultSet = + statement.executeQuery( + "SELECT * FROM FORECAST(model_id=>'timer_xl', input=>(SELECT time,s2 FROM root.AI) ORDER BY time, output_length=>256)")) { + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + checkHeader(resultSetMetaData, "time,s2"); + int count = 0; + while (resultSet.next()) { + count++; + } + assertEquals(256, count); + } // SQL1: user-defined model inferences multi-columns with generateTime=true String sql1 = "SELECT * FROM FORECAST(model_id=>'identity', input=>(SELECT time,s0,s1,s2,s3 FROM root.AI) ORDER BY time, output_length=>7)"; @@ -280,15 +330,15 @@ public class AINodeInferenceSQLIT { // assertEquals(3, count); // } - try (ResultSet resultSet = statement.executeQuery(sql4)) { - ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - checkHeader(resultSetMetaData, "time,s0"); - int count = 0; - while (resultSet.next()) { - count++; - } - assertEquals(6, count); - } + // try (ResultSet resultSet = statement.executeQuery(sql4)) { + // ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + // checkHeader(resultSetMetaData, "time,s0"); + // int count = 0; + // while (resultSet.next()) { + // count++; + // } + // assertEquals(6, count); + // } } } }
