This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/udfSemanticCheck in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 9fb32b5219cab4cf9f200e5e6dad9d16f14df6ad Author: Minghui Liu <[email protected]> AuthorDate: Mon Jun 27 23:23:02 2022 +0800 remove Ignore in IoTDBUDTFHybridQueryIT --- .../iotdb/db/it/udf/IoTDBUDTFHybridQueryIT.java | 63 +++++++++++++++++----- 1 file changed, 51 insertions(+), 12 deletions(-) diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/udf/IoTDBUDTFHybridQueryIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/udf/IoTDBUDTFHybridQueryIT.java index 8aa3c00220..488ccd2ed3 100644 --- a/integration-test/src/test/java/org/apache/iotdb/db/it/udf/IoTDBUDTFHybridQueryIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/db/it/udf/IoTDBUDTFHybridQueryIT.java @@ -26,6 +26,7 @@ import org.apache.iotdb.itbase.constant.UDFTestConstant; import org.junit.AfterClass; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; @@ -36,6 +37,7 @@ import java.sql.SQLException; import java.sql.Statement; import static org.apache.iotdb.itbase.constant.TestConstant.TIMESTAMP_STR; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -67,7 +69,7 @@ public class IoTDBUDTFHybridQueryIT { private static void generateData() { try (Connection connection = EnvFactory.getEnv().getConnection(); Statement statement = connection.createStatement()) { - for (int i = 0; i < 4; ++i) { + for (int i = 0; i < 5; ++i) { statement.execute( (String.format( "insert into root.vehicle.d1(timestamp,s1,s2) values(%d,%d,%d)", i, i, i))); @@ -75,6 +77,14 @@ public class IoTDBUDTFHybridQueryIT { (String.format( "insert into root.vehicle.d2(timestamp,s1,s2) values(%d,%d,%d)", i, i, i))); } + for (int i = 2; i < 4; ++i) { + statement.execute( + (String.format("insert into root.vehicle.d1(timestamp,s3) values(%d,%d)", i, i))); + } + for (int i = 7; i < 10; ++i) { + statement.execute( + (String.format("insert into root.vehicle.d1(timestamp,s3) values(%d,%d)", i, i))); + } } catch (SQLException throwable) { fail(throwable.getMessage()); } @@ -115,19 +125,42 @@ public class IoTDBUDTFHybridQueryIT { } @Test + @Ignore // TODO fill function incompatible public void testUserDefinedFunctionFillFunctionHybridQuery() { - String sql = - String.format( - "select temperature, counter(temperature, '%s'='%s') from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000 fill(float [linear, 1m, 1m])", - UDFTestConstant.ACCESS_STRATEGY_KEY, UDFTestConstant.ACCESS_STRATEGY_ROW_BY_ROW); + String[] retArray = + new String[] { + "0,0.0,1.0,3.14", + "1,0.8414709848078965,2.0,3.14", + "2,0.9092974268256817,3.0,2.0", + "3,0.1411200080598672,4.0,3.0", + "4,-0.7568024953079282,5.0,3.14", + "7,3.14,3.14,7.0", + "8,3.14,3.14,8.0", + "9,3.14,3.14,9.0" + }; try (Connection connection = EnvFactory.getEnv().getConnection(); Statement statement = connection.createStatement()) { - statement.executeQuery(sql); - fail(); + try (ResultSet resultSet = + statement.executeQuery("select sin(s1), s1 + 1, s3 from root.vehicle.d1 fill(3.14)")) { + int cnt = 0; + while (resultSet.next()) { + String ans = + resultSet.getString(TIMESTAMP_STR) + + "," + + resultSet.getString("sin(root.vehicle.d1.s1)") + + "," + + resultSet.getString("root.vehicle.d1.s1 + 1") + + "," + + resultSet.getString("root.vehicle.d1.s3"); + assertEquals(retArray[cnt], ans); + cnt++; + } + assertEquals(retArray.length, cnt); + } } catch (SQLException throwable) { - assertTrue( - throwable.getMessage().contains("Fill functions are not supported in UDF queries.")); + throwable.printStackTrace(); + fail(throwable.getMessage()); } } @@ -155,7 +188,13 @@ public class IoTDBUDTFHybridQueryIT { "0,root.vehicle.d1,1.0,0.0", "1,root.vehicle.d1,2.0,0.8414709848078965", "2,root.vehicle.d1,3.0,0.9092974268256817", - "3,root.vehicle.d1,4.0,0.1411200080598672" + "3,root.vehicle.d1,4.0,0.1411200080598672", + "4,root.vehicle.d1,5.0,0.1411200080598672", + "0,root.vehicle.d2,1.0,0.0", + "1,root.vehicle.d2,2.0,0.8414709848078965", + "2,root.vehicle.d2,3.0,0.9092974268256817", + "3,root.vehicle.d2,4.0,0.1411200080598672", + "4,root.vehicle.d2,5.0,0.1411200080598672" }; try (Connection connection = EnvFactory.getEnv().getConnection(); @@ -172,10 +211,10 @@ public class IoTDBUDTFHybridQueryIT { + resultSet.getString("s1 + 1") + "," + resultSet.getString("sin(s2)"); - System.out.println(ans); + assertEquals(retArray[cnt], ans); cnt++; } - // assertEquals(retSet.size(), cnt); + assertEquals(retArray.length, cnt); } } catch (SQLException throwable) { throwable.printStackTrace();
