Skip to content

Commit

Permalink
Fix bug while using NOT IN predicate for INT64 type
Browse files Browse the repository at this point in the history
  • Loading branch information
JackieTien97 authored Sep 14, 2024
1 parent f227d9a commit 3453796
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,21 @@ public void absTestNormal() {
DATABASE_NAME);
}

@Test
public void testINT64NotIn() {
// case 1: support INT32, INT64, FLOAT, DOUBLE
String[] expectedHeader = new String[] {"time", "s3"};
String[] expectedAns =
new String[] {
"1970-01-01T00:00:00.002Z,-1,", "1970-01-01T00:00:00.003Z,-2,",
};
tableResultSetEqualTest(
"select time,s3 from absTable where s3 not in (1)",
expectedHeader,
expectedAns,
DATABASE_NAME);
}

@Test
public void testBlobCompare() {
// case 1: support INT32, INT64, FLOAT, DOUBLE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1055,16 +1055,21 @@ private static InMultiColumnTransformer constructInColumnTransformer(
}
return new InInt32MultiColumnTransformer(dateSet, valueColumnTransformerList);
case INT64:
case TIMESTAMP:
Set<Long> longSet = new HashSet<>();
for (Literal value : values) {
longSet.add(((LongLiteral) value).getParsedValue());
}
return new InInt64MultiColumnTransformer(longSet, valueColumnTransformerList);
case TIMESTAMP:
Set<Long> timestampSet = new HashSet<>();
for (Literal value : values) {
try {
longSet.add(Long.parseLong(((GenericLiteral) value).getValue()));
timestampSet.add(Long.parseLong(((GenericLiteral) value).getValue()));
} catch (IllegalArgumentException e) {
throw new SemanticException(String.format(errorMsg, value, childType));
}
}
return new InInt64MultiColumnTransformer(longSet, valueColumnTransformerList);
return new InInt64MultiColumnTransformer(timestampSet, valueColumnTransformerList);
case FLOAT:
Set<Float> floatSet = new HashSet<>();
for (Literal value : values) {
Expand Down

0 comments on commit 3453796

Please sign in to comment.