Skip to content

Commit 94ef525

Browse files
committed
Fix
1 parent eb88544 commit 94ef525

File tree

2 files changed

+32
-9
lines changed
  • iotdb-api/pipe-api/src/main/java/org/apache/iotdb/pipe/api/customizer/parameter
  • iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua

2 files changed

+32
-9
lines changed

iotdb-api/pipe-api/src/main/java/org/apache/iotdb/pipe/api/customizer/parameter/PipeParameters.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,15 +384,18 @@ static String reduce(String key) {
384384
if (key == null) {
385385
return null;
386386
}
387-
final String lowerCaseKey = key.toLowerCase();
387+
String lowerCaseKey = key.toLowerCase();
388388
for (final String prefix : FIRST_PREFIXES) {
389389
if (lowerCaseKey.startsWith(prefix)) {
390390
key = key.substring(prefix.length());
391+
lowerCaseKey = lowerCaseKey.substring(prefix.length());
392+
break;
391393
}
392394
}
393395
for (final String prefix : SECOND_PREFIXES) {
394396
if (lowerCaseKey.startsWith(prefix)) {
395397
key = key.substring(prefix.length());
398+
break;
396399
}
397400
}
398401
return key;

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/OpcUaNameSpace.java

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,13 @@ private void transferTabletRowForClientServerModel(
226226
}
227227

228228
final String currentFolder = currentStr.toString();
229+
229230
StatusCode currentQuality =
230231
Objects.isNull(sink.valueName) ? StatusCode.GOOD : StatusCode.UNCERTAIN;
232+
UaVariableNode valueNode = null;
233+
Object value = null;
234+
long timestamp = 0;
235+
231236
for (int i = 0; i < measurementSchemas.size(); ++i) {
232237
if (Objects.isNull(values.get(i))) {
233238
continue;
@@ -283,15 +288,30 @@ private void transferTabletRowForClientServerModel(
283288
}
284289

285290
final long utcTimestamp = timestampToUtc(timestamps.get(timestamps.size() > 1 ? i : 0));
286-
if (Objects.isNull(measurementNode.getValue())
287-
|| Objects.requireNonNull(measurementNode.getValue().getSourceTime()).getUtcTime()
288-
< utcTimestamp) {
289-
measurementNode.setValue(
291+
if (Objects.isNull(sink.valueName)) {
292+
if (Objects.isNull(measurementNode.getValue())
293+
|| Objects.requireNonNull(measurementNode.getValue().getSourceTime()).getUtcTime()
294+
< utcTimestamp) {
295+
measurementNode.setValue(
296+
new DataValue(
297+
new Variant(values.get(i)),
298+
currentQuality,
299+
new DateTime(utcTimestamp),
300+
new DateTime()));
301+
}
302+
} else {
303+
valueNode = measurementNode;
304+
value = values.get(i);
305+
timestamp = utcTimestamp;
306+
}
307+
}
308+
if (Objects.nonNull(valueNode)) {
309+
if (Objects.isNull(valueNode.getValue())
310+
|| Objects.requireNonNull(valueNode.getValue().getSourceTime()).getUtcTime()
311+
< timestamp) {
312+
valueNode.setValue(
290313
new DataValue(
291-
new Variant(values.get(i)),
292-
currentQuality,
293-
new DateTime(utcTimestamp),
294-
new DateTime()));
314+
new Variant(value), currentQuality, new DateTime(timestamp), new DateTime()));
295315
}
296316
}
297317
}

0 commit comments

Comments
 (0)