This is an automated email from the ASF dual-hosted git repository.

jhyde pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git

commit 9f231cc5b91b100b6a6fbc3cd6324873529dbf49
Author: Julian Hyde <[email protected]>
AuthorDate: Fri Jun 21 16:53:42 2024 -0700

    Add Steelwheels data set
---
 bom/build.gradle.kts                               |  1 +
 build.gradle.kts                                   |  1 +
 .../org/apache/calcite/test/CoreQuidemTest.java    | 10 +++++
 gradle.properties                                  |  1 +
 testkit/build.gradle.kts                           |  1 +
 .../org/apache/calcite/test/CalciteAssert.java     | 47 +++++++++++++++++-----
 .../java/org/apache/calcite/test/QuidemTest.java   |  8 ++++
 7 files changed, 60 insertions(+), 9 deletions(-)

diff --git a/bom/build.gradle.kts b/bom/build.gradle.kts
index 1cb1f32244..3128d72151 100644
--- a/bom/build.gradle.kts
+++ b/bom/build.gradle.kts
@@ -93,6 +93,7 @@ dependencies {
         apiv("net.hydromatic:quidem")
         apiv("net.hydromatic:scott-data-hsqldb")
         apiv("net.hydromatic:sql-logic-test")
+        apiv("net.hydromatic:steelwheels-data-hsqldb")
         apiv("net.hydromatic:tpcds", "hydromatic.tpcds")
         apiv("net.java.dev.jna:jna")
         apiv("net.java.dev.jna:jna-platform")
diff --git a/build.gradle.kts b/build.gradle.kts
index be829ddbb6..6f6d6c2981 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -214,6 +214,7 @@ val adaptersForSqlline = listOf(
 val dataSetsForSqlline = listOf(
     "net.hydromatic:foodmart-data-hsqldb",
     "net.hydromatic:scott-data-hsqldb",
+    "net.hydromatic:steelwheels-data-hsqldb",
     "net.hydromatic:chinook-data-hsqldb"
 )
 
diff --git a/core/src/test/java/org/apache/calcite/test/CoreQuidemTest.java 
b/core/src/test/java/org/apache/calcite/test/CoreQuidemTest.java
index 9f498b7df2..b492d8b63f 100644
--- a/core/src/test/java/org/apache/calcite/test/CoreQuidemTest.java
+++ b/core/src/test/java/org/apache/calcite/test/CoreQuidemTest.java
@@ -17,6 +17,8 @@
 package org.apache.calcite.test;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
+import org.apache.calcite.config.Lex;
+import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
 
 import net.hydromatic.quidem.Quidem;
@@ -85,6 +87,14 @@ class CoreQuidemTest extends QuidemTest {
                   SqlConformanceEnum.MYSQL_5)
               .with(CalciteAssert.Config.SCOTT)
               .connect();
+        case "steelwheels":
+          return CalciteAssert.that()
+              .with(CalciteConnectionProperty.PARSER_FACTORY,
+                  ExtensionDdlExecutor.class.getName() + "#PARSER_FACTORY")
+              .with(CalciteConnectionProperty.FUN, SqlLibrary.CALCITE.fun)
+              .with(CalciteAssert.SchemaSpec.STEELWHEELS)
+              .with(Lex.BIG_QUERY)
+              .connect();
         default:
           return super.connect(name, reference);
         }
diff --git a/gradle.properties b/gradle.properties
index 49eb254a70..e044c79208 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -165,6 +165,7 @@ slf4j.version=1.7.25
 spark.version=2.2.2
 sqlline.version=1.12.0
 sql-logic-test.version=0.3
+steelwheels-data-hsqldb.version=0.2
 teradata.tpcds.version=1.2
 testcontainers.version=1.19.3
 tpch.version=1.0
diff --git a/testkit/build.gradle.kts b/testkit/build.gradle.kts
index dba83160d3..2154cbf82c 100644
--- a/testkit/build.gradle.kts
+++ b/testkit/build.gradle.kts
@@ -28,6 +28,7 @@ dependencies {
     implementation("net.hydromatic:foodmart-data-hsqldb")
     implementation("net.hydromatic:foodmart-queries")
     implementation("net.hydromatic:scott-data-hsqldb")
+    implementation("net.hydromatic:steelwheels-data-hsqldb")
     implementation("org.apache.commons:commons-dbcp2")
     implementation("org.apache.commons:commons-lang3")
     implementation("org.apache.commons:commons-pool2")
diff --git a/testkit/src/main/java/org/apache/calcite/test/CalciteAssert.java 
b/testkit/src/main/java/org/apache/calcite/test/CalciteAssert.java
index 61891df2e8..4dc98a1adc 100644
--- a/testkit/src/main/java/org/apache/calcite/test/CalciteAssert.java
+++ b/testkit/src/main/java/org/apache/calcite/test/CalciteAssert.java
@@ -97,6 +97,7 @@ import com.google.common.collect.Lists;
 
 import net.hydromatic.foodmart.data.hsqldb.FoodmartHsqldb;
 import net.hydromatic.scott.data.hsqldb.ScottHsqldb;
+import net.hydromatic.steelwheels.data.hsqldb.SteelwheelsHsqldb;
 
 import org.apiguardian.api.API;
 import org.checkerframework.checker.nullness.qual.Nullable;
@@ -804,6 +805,7 @@ public class CalciteAssert {
   static SchemaPlus addSchema_(SchemaPlus rootSchema, SchemaSpec schema) {
     final SchemaPlus foodmart;
     final SchemaPlus jdbcScott;
+    final SchemaPlus jdbcSteelwheels;
     final SchemaPlus scott;
     final ConnectionSpec cs;
     final DataSource dataSource;
@@ -819,6 +821,13 @@ public class CalciteAssert {
       return rootSchema.add(schema.schemaName,
           JdbcSchema.create(rootSchema, schema.schemaName, dataSource,
               cs.catalog, cs.schema));
+    case JDBC_STEELWHEELS:
+      cs = DatabaseInstance.HSQLDB.steelwheels;
+      dataSource =
+          JdbcSchema.dataSource(cs.url, cs.driver, cs.username, cs.password);
+      return rootSchema.add(schema.schemaName,
+          JdbcSchema.create(rootSchema, schema.schemaName, dataSource,
+              cs.catalog, cs.schema));
     case JDBC_FOODMART:
       cs = DB.foodmart;
       dataSource =
@@ -852,6 +861,10 @@ public class CalciteAssert {
               OrdersStreamTableFactory.getRowList()));
       return scott;
 
+    case STEELWHEELS:
+      jdbcSteelwheels = addSchemaIfNotExists(rootSchema, 
SchemaSpec.JDBC_STEELWHEELS);
+      return rootSchema.add(schema.schemaName, new 
CloneSchema(jdbcSteelwheels));
+
     case TPCH:
       return rootSchema.add(schema.schemaName,
           new ReflectiveSchema(new TpchSchema()));
@@ -1965,31 +1978,45 @@ public class CalciteAssert {
    * tests against a different database. (hsqldb is the default.) */
   public enum DatabaseInstance {
     HSQLDB(
-        new ConnectionSpec(FoodmartHsqldb.URI, "FOODMART", "FOODMART",
-            "org.hsqldb.jdbcDriver", "foodmart"),
-        new ConnectionSpec(ScottHsqldb.URI, ScottHsqldb.USER,
-            ScottHsqldb.PASSWORD, "org.hsqldb.jdbcDriver", "SCOTT")),
+        new ConnectionSpec(FoodmartHsqldb.URI,
+            FoodmartHsqldb.USER,
+            FoodmartHsqldb.PASSWORD,
+            "org.hsqldb.jdbcDriver",
+            "foodmart"),
+        new ConnectionSpec(ScottHsqldb.URI,
+            ScottHsqldb.USER,
+            ScottHsqldb.PASSWORD,
+            "org.hsqldb.jdbcDriver",
+            "SCOTT"),
+        new ConnectionSpec(SteelwheelsHsqldb.URI,
+            SteelwheelsHsqldb.USER,
+            SteelwheelsHsqldb.PASSWORD,
+            "org.hsqldb.jdbcDriver",
+            "steelwheels")),
     H2(
         new ConnectionSpec("jdbc:h2:" + 
CalciteSystemProperty.TEST_DATASET_PATH.value()
             + "/h2/target/foodmart;user=foodmart;password=foodmart",
-            "foodmart", "foodmart", "org.h2.Driver", "foodmart"), null),
+            "foodmart", "foodmart", "org.h2.Driver", "foodmart"), null, null),
     MYSQL(
         new ConnectionSpec("jdbc:mysql://localhost/foodmart", "foodmart",
-            "foodmart", "com.mysql.jdbc.Driver", "foodmart"), null),
+            "foodmart", "com.mysql.jdbc.Driver", "foodmart"), null, null),
     ORACLE(
         new ConnectionSpec("jdbc:oracle:thin:@localhost:1521:XE", "foodmart",
-            "foodmart", "oracle.jdbc.OracleDriver", "FOODMART"), null),
+            "foodmart", "oracle.jdbc.OracleDriver", "FOODMART"), null, null),
     POSTGRESQL(
         new ConnectionSpec(
             
"jdbc:postgresql://localhost/foodmart?user=foodmart&password=foodmart&searchpath=foodmart",
-            "foodmart", "foodmart", "org.postgresql.Driver", "foodmart"), 
null);
+            "foodmart", "foodmart", "org.postgresql.Driver", "foodmart"), 
null, null);
 
     public final ConnectionSpec foodmart;
     public final ConnectionSpec scott;
+    public final ConnectionSpec steelwheels;
 
-    DatabaseInstance(ConnectionSpec foodmart, ConnectionSpec scott) {
+    DatabaseInstance(ConnectionSpec foodmart, ConnectionSpec scott,
+        ConnectionSpec steelwheels) {
       this.foodmart = foodmart;
       this.scott = scott;
+      this.steelwheels = steelwheels;
     }
   }
 
@@ -2006,6 +2033,8 @@ public class CalciteAssert {
     JDBC_SCOTT("JDBC_SCOTT"),
     SCOTT("scott"),
     SCOTT_WITH_TEMPORAL("scott_temporal"),
+    JDBC_STEELWHEELS("JDBC_STEELWHEELS"),
+    STEELWHEELS("steelwheels"),
     TPCH("tpch"),
     BLANK("BLANK"),
     LINGUAL("SALES"),
diff --git a/testkit/src/main/java/org/apache/calcite/test/QuidemTest.java 
b/testkit/src/main/java/org/apache/calcite/test/QuidemTest.java
index 717b4a7a78..17d824acca 100644
--- a/testkit/src/main/java/org/apache/calcite/test/QuidemTest.java
+++ b/testkit/src/main/java/org/apache/calcite/test/QuidemTest.java
@@ -288,6 +288,14 @@ public abstract class QuidemTest {
         return CalciteAssert.that()
             .with(CalciteAssert.Config.JDBC_SCOTT)
             .connect();
+      case "steelwheels":
+        return CalciteAssert.that()
+            .with(CalciteAssert.SchemaSpec.STEELWHEELS)
+            .connect();
+      case "jdbc_steelwheels":
+        return CalciteAssert.that()
+            .with(CalciteAssert.SchemaSpec.JDBC_STEELWHEELS)
+            .connect();
       case "post":
         return CalciteAssert.that()
             .with(CalciteAssert.Config.REGULAR)

Reply via email to