This is an automated email from the ASF dual-hosted git repository.
jackietien 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 3f9778a6004 Compatibility modification for LikeViewExpression
deserialization
3f9778a6004 is described below
commit 3f9778a6004e1995a24855bfca7da0ad64c17d45
Author: Lin Xintao <[email protected]>
AuthorDate: Thu Mar 13 14:25:03 2025 +0800
Compatibility modification for LikeViewExpression deserialization
---
.../viewExpression/unary/LikeViewExpression.java | 53 ++++++++++++++++++----
1 file changed, 43 insertions(+), 10 deletions(-)
diff --git
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/view/viewExpression/unary/LikeViewExpression.java
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/view/viewExpression/unary/LikeViewExpression.java
index e52f436f23e..1c195727d5e 100644
---
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/view/viewExpression/unary/LikeViewExpression.java
+++
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/view/viewExpression/unary/LikeViewExpression.java
@@ -56,24 +56,55 @@ public class LikeViewExpression extends UnaryViewExpression
{
public LikeViewExpression(ByteBuffer byteBuffer) {
super(ViewExpression.deserialize(byteBuffer));
pattern = ReadWriteIOUtils.readString(byteBuffer);
- if (ReadWriteIOUtils.readBool(byteBuffer)) {
- escape = Optional.of(ReadWriteIOUtils.readString(byteBuffer).charAt(0));
- } else {
- escape = Optional.empty();
+ byte judge = ReadWriteIOUtils.readByte(byteBuffer);
+ switch (judge) {
+ case -1:
+ case 0:
+ isNot = false;
+ escape = Optional.empty();
+ break;
+ case 1:
+ isNot = true;
+ escape = Optional.empty();
+ break;
+ case 2:
+ if (ReadWriteIOUtils.readBool(byteBuffer)) {
+ escape =
Optional.of(ReadWriteIOUtils.readString(byteBuffer).charAt(0));
+ } else {
+ escape = Optional.empty();
+ }
+ isNot = ReadWriteIOUtils.readBool(byteBuffer);
+ default:
+ throw new IllegalStateException("Unexpected value in
LikeViewExpression: " + judge);
}
- isNot = ReadWriteIOUtils.readBool(byteBuffer);
}
public LikeViewExpression(InputStream inputStream) {
super(ViewExpression.deserialize(inputStream));
try {
pattern = ReadWriteIOUtils.readString(inputStream);
- if (ReadWriteIOUtils.readBool(inputStream)) {
- escape =
Optional.of(ReadWriteIOUtils.readString(inputStream).charAt(0));
- } else {
- escape = Optional.empty();
+ byte judge = ReadWriteIOUtils.readByte(inputStream);
+ switch (judge) {
+ case -1:
+ case 0:
+ escape = Optional.empty();
+ isNot = false;
+ break;
+ case 1:
+ escape = Optional.empty();
+ isNot = true;
+ break;
+ case 2:
+ if (ReadWriteIOUtils.readBool(inputStream)) {
+ escape =
Optional.of(ReadWriteIOUtils.readString(inputStream).charAt(0));
+ } else {
+ escape = Optional.empty();
+ }
+ isNot = ReadWriteIOUtils.readBool(inputStream);
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value in
LikeViewExpression: " + judge);
}
- isNot = ReadWriteIOUtils.readBool(inputStream);
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -113,6 +144,7 @@ public class LikeViewExpression extends UnaryViewExpression
{
protected void serialize(ByteBuffer byteBuffer) {
super.serialize(byteBuffer);
ReadWriteIOUtils.write(pattern, byteBuffer);
+ ReadWriteIOUtils.write(2, byteBuffer);
ReadWriteIOUtils.write(escape.isPresent(), byteBuffer);
if (escape.isPresent()) {
ReadWriteIOUtils.write(escape.get().toString(), byteBuffer);
@@ -124,6 +156,7 @@ public class LikeViewExpression extends UnaryViewExpression
{
protected void serialize(OutputStream stream) throws IOException {
super.serialize(stream);
ReadWriteIOUtils.write(pattern, stream);
+ ReadWriteIOUtils.write(2, stream);
ReadWriteIOUtils.write(escape.isPresent(), stream);
if (escape.isPresent()) {
ReadWriteIOUtils.write(escape.get().toString(), stream);