未验证 提交 9d615bb4 编写于 作者: S Steve Yurong Su 提交者: GitHub

[IOTDB-2441] Msg has no status code when MULTIPLE_ERROR occurs (#4918)

上级 91dd7f7b
......@@ -22,6 +22,7 @@ package org.apache.iotdb.db.integration;
import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.itbase.category.LocalStandaloneTest;
import org.apache.iotdb.jdbc.Config;
import org.apache.iotdb.rpc.TSStatusCode;
import org.junit.AfterClass;
import org.junit.Assert;
......@@ -38,7 +39,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
......@@ -136,10 +137,8 @@ public class IoTDBInsertMultiRowIT {
"insert into root.t1.wf01.wt01(timestamp, s1) values(1, 1.0) (2, 'hello'), (3, true)");
fail();
} catch (SQLException e) {
assertEquals(
"org.apache.iotdb.db.exception.StorageEngineException: failed to insert measurements [s1] caused by For input string: \"'hello'\";"
+ "org.apache.iotdb.db.exception.StorageEngineException: failed to insert measurements [s1] caused by For input string: \"true\";",
e.getMessage());
assertTrue(
e.getMessage().contains(Integer.toString(TSStatusCode.MULTIPLE_ERROR.getStatusCode())));
}
}
}
......@@ -26,6 +26,7 @@ import org.apache.iotdb.db.service.IoTDB;
import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.itbase.category.LocalStandaloneTest;
import org.apache.iotdb.jdbc.Config;
import org.apache.iotdb.rpc.TSStatusCode;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
......@@ -122,6 +123,13 @@ public class IoTDBSelectIntoIT {
TSEncoding.PLAIN,
CompressionType.UNCOMPRESSED,
null);
IoTDB.metaManager.createTimeseries(
new PartialPath("root.sg.d1.datatype"),
TSDataType.DOUBLE,
TSEncoding.PLAIN,
CompressionType.UNCOMPRESSED,
null);
}
private static void generateData() {
......@@ -397,6 +405,23 @@ public class IoTDBSelectIntoIT {
}
}
@Test
public void testSourceAndTargetPathDataTypeUnmatched() {
try (Connection connection =
DriverManager.getConnection(
Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
Statement statement = connection.createStatement()) {
statement.execute("select s1 " + "into root.sg.d1.`datatype` " + "from root.sg.d1");
fail();
} catch (SQLException throwable) {
assertTrue(
throwable
.getMessage()
.contains(Integer.toString(TSStatusCode.MULTIPLE_ERROR.getStatusCode())));
assertTrue(throwable.getMessage().contains("mismatch"));
}
}
@Test
public void testSelectIntoAlignedTimeSeriesWithUnmatchedTypes() {
try (Connection connection =
......
......@@ -537,7 +537,7 @@ public class IoTDBSessionSimpleIT {
try {
session.deleteTimeseries(Arrays.asList("root.sg1.d1.t6", "root.sg1.d1.t2", "root.sg1.d1.t3"));
} catch (BatchExecutionException e) {
assertEquals("Path [root.sg1.d1.t6] does not exist;", e.getMessage());
assertTrue(e.getMessage().contains("Path [root.sg1.d1.t6] does not exist;"));
}
assertTrue(session.checkTimeseriesExists("root.sg1.d1.t1"));
assertFalse(session.checkTimeseriesExists("root.sg1.d1.t2"));
......@@ -1226,8 +1226,9 @@ public class IoTDBSessionSimpleIT {
session.deleteTimeseries("root.sg.loc1.sector.x");
fail();
} catch (StatementExecutionException e) {
assertEquals(
"Cannot delete a timeseries inside a template: root.sg.loc1.sector.x;", e.getMessage());
assertTrue(
e.getMessage()
.contains("Cannot delete a timeseries inside a template: root.sg.loc1.sector.x;"));
}
session.close();
......
......@@ -136,11 +136,12 @@ public class RpcUtils {
}
public static void verifySuccess(List<TSStatus> statuses) throws BatchExecutionException {
StringBuilder errMsgs = new StringBuilder();
StringBuilder errMsgs =
new StringBuilder().append(TSStatusCode.MULTIPLE_ERROR.getStatusCode()).append(": ");
for (TSStatus status : statuses) {
if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
&& status.getCode() != TSStatusCode.NEED_REDIRECTION.getStatusCode()) {
errMsgs.append(status.getMessage()).append(";");
errMsgs.append(status.getMessage()).append("; ");
}
}
if (errMsgs.length() > 0) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册