This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 01ca80bc29 [IOTDB-4318][RESTAPI]when writing data through the
interface rest/v1/insertTablet ,data type conversion failed (#7265)
01ca80bc29 is described below
commit 01ca80bc29383132589d9443bf8e9f0f3cd223e5
Author: Summer <[email protected]>
AuthorDate: Thu Sep 8 14:07:09 2022 +0800
[IOTDB-4318][RESTAPI]when writing data through the interface
rest/v1/insertTablet ,data type conversion failed (#7265)
---
.../mpprest/handler/StatementConstructionHandler.java | 17 ++++++++++++-----
.../rest/handler/PhysicalPlanConstructionHandler.java | 17 ++++++++++++-----
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/handler/StatementConstructionHandler.java
b/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/handler/StatementConstructionHandler.java
index 49f13a26ed..532a356a77 100644
---
a/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/handler/StatementConstructionHandler.java
+++
b/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/handler/StatementConstructionHandler.java
@@ -60,10 +60,17 @@ public class StatementConstructionHandler {
case BOOLEAN:
boolean[] booleanValues = new boolean[rowSize];
for (int rowIndex = 0; rowIndex < rowSize; rowIndex++) {
- if (rawData.get(columnIndex).get(rowIndex) == null) {
+ Object data = rawData.get(columnIndex).get(rowIndex);
+ if (data == null) {
bitMaps[columnIndex].mark(rowIndex);
} else {
- booleanValues[rowIndex] = (Boolean)
rawData.get(columnIndex).get(rowIndex);
+ if ("1".equals(data.toString())) {
+ booleanValues[rowIndex] = true;
+ } else if ("0".equals(data.toString())) {
+ booleanValues[rowIndex] = false;
+ } else {
+ booleanValues[rowIndex] = (Boolean) data;
+ }
}
}
columns[columnIndex] = booleanValues;
@@ -103,11 +110,11 @@ public class StatementConstructionHandler {
case FLOAT:
float[] floatValues = new float[rowSize];
for (int rowIndex = 0; rowIndex < rowSize; rowIndex++) {
- if (rawData.get(columnIndex).get(rowIndex) == null) {
+ Object data = rawData.get(columnIndex).get(rowIndex);
+ if (data == null) {
bitMaps[columnIndex].mark(rowIndex);
} else {
- floatValues[rowIndex] =
- ((Double)
rawData.get(columnIndex).get(rowIndex)).floatValue();
+ floatValues[rowIndex] = Float.valueOf(String.valueOf(data));
}
}
columns[columnIndex] = floatValues;
diff --git
a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/PhysicalPlanConstructionHandler.java
b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/PhysicalPlanConstructionHandler.java
index 7d3cdcb259..1c74fd3c0e 100644
---
a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/PhysicalPlanConstructionHandler.java
+++
b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/PhysicalPlanConstructionHandler.java
@@ -58,10 +58,17 @@ public class PhysicalPlanConstructionHandler {
case BOOLEAN:
boolean[] booleanValues = new boolean[rowSize];
for (int rowIndex = 0; rowIndex < rowSize; rowIndex++) {
- if (rawData.get(columnIndex).get(rowIndex) == null) {
+ Object data = rawData.get(columnIndex).get(rowIndex);
+ if (data == null) {
bitMaps[columnIndex].mark(rowIndex);
} else {
- booleanValues[rowIndex] = (Boolean)
rawData.get(columnIndex).get(rowIndex);
+ if ("1".equals(data.toString())) {
+ booleanValues[rowIndex] = true;
+ } else if ("0".equals(data.toString())) {
+ booleanValues[rowIndex] = false;
+ } else {
+ booleanValues[rowIndex] = (Boolean) data;
+ }
}
}
columns[columnIndex] = booleanValues;
@@ -101,11 +108,11 @@ public class PhysicalPlanConstructionHandler {
case FLOAT:
float[] floatValues = new float[rowSize];
for (int rowIndex = 0; rowIndex < rowSize; rowIndex++) {
- if (rawData.get(columnIndex).get(rowIndex) == null) {
+ Object data = rawData.get(columnIndex).get(rowIndex);
+ if (data == null) {
bitMaps[columnIndex].mark(rowIndex);
} else {
- floatValues[rowIndex] =
- ((Double)
rawData.get(columnIndex).get(rowIndex)).floatValue();
+ floatValues[rowIndex] = Float.valueOf(String.valueOf(data));
}
}
columns[columnIndex] = floatValues;