From fc2026afd4e9acf3fb733089ad9262380d05758e Mon Sep 17 00:00:00 2001 From: MaxKsyunz Date: Mon, 29 May 2023 16:59:20 -0700 Subject: [PATCH 1/3] Update sqlite-jdbc to 3.41.2.2 to address CVE-2023-32697 Signed-off-by: MaxKsyunz --- integ-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integ-test/build.gradle b/integ-test/build.gradle index 2c1a0664817..fc97fff9a48 100644 --- a/integ-test/build.gradle +++ b/integ-test/build.gradle @@ -101,7 +101,7 @@ dependencies { testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.6.2') testImplementation group: 'com.h2database', name: 'h2', version: '2.1.214' - testImplementation group: 'org.xerial', name: 'sqlite-jdbc', version: '3.32.3.3' + testImplementation group: 'org.xerial', name: 'sqlite-jdbc', version: '3.41.2.2' testImplementation group: 'com.google.code.gson', name: 'gson', version: '2.8.9' // Needed for BWC tests From 62bc46ba78d47e18d9c8e7bb99533fc67c02ed1a Mon Sep 17 00:00:00 2001 From: Yury-Fridlyand Date: Thu, 22 Jun 2023 21:16:04 -0700 Subject: [PATCH 2/3] Don't check column names on H2 results for correctness tests as described in https://github.com/opensearch-project/sql/pull/1667#issuecomment-1603659136. Signed-off-by: Yury-Fridlyand --- .../runner/resultset/DBResult.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/integ-test/src/test/java/org/opensearch/sql/correctness/runner/resultset/DBResult.java b/integ-test/src/test/java/org/opensearch/sql/correctness/runner/resultset/DBResult.java index 0899a6e2c46..2d58dbc0e30 100644 --- a/integ-test/src/test/java/org/opensearch/sql/correctness/runner/resultset/DBResult.java +++ b/integ-test/src/test/java/org/opensearch/sql/correctness/runner/resultset/DBResult.java @@ -12,8 +12,9 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Objects; import java.util.Set; -import lombok.EqualsAndHashCode; +import java.util.stream.Collectors; import lombok.Getter; import lombok.ToString; import org.json.JSONPropertyName; @@ -24,7 +25,6 @@ * query with SELECT columns or just *, order of column and row may matter or not. So the internal data structure of this * class is passed in from outside either list or set, hash map or linked hash map etc. */ -@EqualsAndHashCode(exclude = "databaseName") @ToString public class DBResult { @@ -191,4 +191,22 @@ private static > List sort(Collection collection) return list; } + public boolean equals(final Object o) { + if (o == this) { + return true; + } + if (!(o instanceof DBResult)) { + return false; + } + final DBResult other = (DBResult) o; + // H2 calculates the value before setting column name + // for example, for query "select 1 + 1" it returns a column named "2" instead of "1 + 1" + boolean skipColumnNameCheck = databaseName.equalsIgnoreCase("h2") || other.databaseName.equalsIgnoreCase("h2"); + if ((!skipColumnNameCheck && !schema.equals(other.schema) || (skipColumnNameCheck && + !schema.stream().map(Type::getType).collect(Collectors.toList()) + .equals(other.schema.stream().map(Type::getType).collect(Collectors.toList()))))) { + return false; + } + return dataRows.equals(other.dataRows); + } } From 4e51282f75d3f4589aca0c75d798b11af494b709 Mon Sep 17 00:00:00 2001 From: Yury-Fridlyand Date: Fri, 23 Jun 2023 09:58:02 -0700 Subject: [PATCH 3/3] Address PR review comment. Signed-off-by: Yury-Fridlyand --- .../sql/correctness/runner/resultset/DBResult.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/integ-test/src/test/java/org/opensearch/sql/correctness/runner/resultset/DBResult.java b/integ-test/src/test/java/org/opensearch/sql/correctness/runner/resultset/DBResult.java index 2d58dbc0e30..eb522b008d7 100644 --- a/integ-test/src/test/java/org/opensearch/sql/correctness/runner/resultset/DBResult.java +++ b/integ-test/src/test/java/org/opensearch/sql/correctness/runner/resultset/DBResult.java @@ -202,9 +202,11 @@ public boolean equals(final Object o) { // H2 calculates the value before setting column name // for example, for query "select 1 + 1" it returns a column named "2" instead of "1 + 1" boolean skipColumnNameCheck = databaseName.equalsIgnoreCase("h2") || other.databaseName.equalsIgnoreCase("h2"); - if ((!skipColumnNameCheck && !schema.equals(other.schema) || (skipColumnNameCheck && - !schema.stream().map(Type::getType).collect(Collectors.toList()) - .equals(other.schema.stream().map(Type::getType).collect(Collectors.toList()))))) { + if (!skipColumnNameCheck && !schema.equals(other.schema)) { + return false; + } + if (skipColumnNameCheck && !schema.stream().map(Type::getType).collect(Collectors.toList()) + .equals(other.schema.stream().map(Type::getType).collect(Collectors.toList()))) { return false; } return dataRows.equals(other.dataRows);