You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2022/03/22 04:24:41 UTC

[calcite] branch master updated: [CALCITE-5037] Upgrade HSQLDB to 2.5.2

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 92843e8  [CALCITE-5037] Upgrade HSQLDB to 2.5.2
92843e8 is described below

commit 92843e8d63455cfb3cd8cc2b83951525e6e93143
Author: Julian Hyde <jh...@apache.org>
AuthorDate: Thu Mar 10 02:31:27 2022 -0800

    [CALCITE-5037] Upgrade HSQLDB to 2.5.2
    
    Upgrade HSQLDB to 2.5.2 (the last version that also supports
    Java 8) and allow people to run using HSQLDB 2.6.1 (the most
    recent version, which requires Java 11 or higher).
    
    Also upgrade data sets:
     * scott-data-hsqldb from 0.1 to 0.2;
     * foodmart-data-hsqldb from 0.4 to 0.5;
     * chinook-data-hsqldb from 0.1 to 0.2.
    
    The previous versions of those data sets used HSQLDB file
    format 1.8, and the newer versions use 2.0 format.
---
 .../org/apache/calcite/test/JdbcAdapterTest.java     |  5 +++++
 gradle.properties                                    |  8 ++++----
 plus/src/main/resources/chinook/chinook.json         | 20 ++++++++++----------
 .../RemotePreparedStatementParametersTest.java       |  2 +-
 plus/src/test/resources/sql/basic.iq                 | 12 ++++++------
 plus/src/test/resources/sql/cross-join-lateral.iq    |  2 +-
 plus/src/test/resources/sql/functions.iq             |  2 +-
 .../resources/sql/preferred-for-specific-user.iq     | 18 +++++++++---------
 8 files changed, 37 insertions(+), 32 deletions(-)

diff --git a/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java b/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java
index 7badf5f..d4bd9dc 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java
@@ -544,8 +544,13 @@ class JdbcAdapterTest {
   }
 
   @Test void testTablesNoCatalogSchema() {
+    // Switch from "FOODMART" user, whose default schema is 'foodmart',
+    // to "sa", whose default schema is the root, and therefore cannot
+    // see the table unless directed to look in a particular schema.
     final String model =
         FoodmartSchema.FOODMART_MODEL
+            .replace("jdbcUser: 'FOODMART'", "jdbcUser: 'sa'")
+            .replace("jdbcPassword: 'FOODMART'", "jdbcPassword: ''")
             .replace("jdbcCatalog: 'foodmart'", "jdbcCatalog: null")
             .replace("jdbcSchema: 'foodmart'", "jdbcSchema: null");
     // Since Calcite uses PostgreSQL JDBC driver version >= 4.1,
diff --git a/gradle.properties b/gradle.properties
index 054a1dc..199b275 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -84,7 +84,7 @@ byte-buddy.version=1.9.3
 cassandra-all.version=4.0.1
 cassandra-java-driver-core.version=4.13.0
 cassandra-unit.version=4.3.1.0
-chinook-data-hsqldb.version=0.1
+chinook-data-hsqldb.version=0.2
 commons-codec.version=1.13
 commons-dbcp2.version=2.6.0
 commons-io.version=2.11.0
@@ -96,7 +96,7 @@ dropwizard-metrics.version=4.0.5
 elasticsearch.version=7.10.2
 embedded-redis.version=0.6
 esri-geometry-api.version=2.2.0
-foodmart-data-hsqldb.version=0.3
+foodmart-data-hsqldb.version=0.5
 foodmart-data-json.version=0.4
 foodmart-queries.version=0.4.1
 geode-core.version=1.10.0
@@ -105,7 +105,7 @@ h2.version=2.1.210
 hadoop.version=2.7.5
 hamcrest-date.version=2.0.4
 hamcrest.version=2.1
-hsqldb.version=2.4.1
+hsqldb.version=2.5.2
 httpclient.version=4.5.9
 httpcore.version=4.4.11
 hydromatic.tpcds.version=0.4
@@ -143,7 +143,7 @@ postgresql.version=9.3-1102-jdbc41
 protobuf.version=3.17.1
 quidem.version=0.10
 scala-library.version=2.10.3
-scott-data-hsqldb.version=0.1
+scott-data-hsqldb.version=0.2
 servlet.version=4.0.1
 sketches-core.version=0.9.0
 slf4j.version=1.7.25
diff --git a/plus/src/main/resources/chinook/chinook.json b/plus/src/main/resources/chinook/chinook.json
index afec908..ee27313 100644
--- a/plus/src/main/resources/chinook/chinook.json
+++ b/plus/src/main/resources/chinook/chinook.json
@@ -23,8 +23,8 @@
       "type": "jdbc",
       "jdbcDriver": "org.hsqldb.jdbc.JDBCDriver",
       "jdbcUrl": "jdbc:hsqldb:res:chinook",
-      "jdbcUser": "sa",
-      "jdbcPassword": ""
+      "jdbcUser": "CHINOOK",
+      "jdbcPassword": "CHINOOK"
     },
     {
       "name": "ENHANCED",
@@ -36,18 +36,18 @@
           "name": "PREFERRED_TRACKS",
           "type": "view",
           "sql": [
-            "SELECT trackid, name, albumid, mediatypeid, genreid, composer, milliseconds, bytes, unitprice ",
-            "FROM chinook.track AS tr",
-            "WHERE tr.genreid IN (SELECT id FROM preferred_genres) ",
-            "OR tr.albumid IN (SELECT id FROM preferred_albums)"
+            "SELECT \"TrackId\", \"Name\", \"AlbumId\", \"MediaTypeId\", \"GenreId\", \"Composer\", \"Milliseconds\", \"Bytes\", \"UnitPrice\" ",
+            "FROM chinook.\"Track\" AS tr",
+            "WHERE tr.\"GenreId\" IN (SELECT id FROM preferred_genres) ",
+            "OR tr.\"AlbumId\" IN (SELECT id FROM preferred_albums)"
           ]
         },
         {
           "name": "SIMPLE_CUSTOMER",
           "type": "view",
           "sql": [
-            "SELECT c.firstname, c.lastname, c.email ",
-            "FROM chinook.customer AS c"
+            "SELECT c.\"FirstName\", c.\"LastName\", c.\"Email\" ",
+            "FROM chinook.\"Customer\" AS c"
           ]
         },
         {
@@ -95,9 +95,9 @@
           "name": "CODED_EMAILS",
           "type": "view",
           "sql": [
-            "SELECT SC.email, TF.TYPE, TF.CODEVALUE ",
+            "SELECT SC.\"Email\", TF.TYPE, TF.CODEVALUE ",
             "FROM ENHANCED.SIMPLE_CUSTOMER SC ",
-            "CROSS JOIN LATERAL TABLE(AUX.CODES(SC.email)) TF ",
+            "CROSS JOIN LATERAL TABLE(AUX.CODES(SC.\"Email\")) TF ",
             "limit 6"
           ]
         }
diff --git a/plus/src/test/java/org/apache/calcite/chinook/RemotePreparedStatementParametersTest.java b/plus/src/test/java/org/apache/calcite/chinook/RemotePreparedStatementParametersTest.java
index 1c80973..77dd923 100644
--- a/plus/src/test/java/org/apache/calcite/chinook/RemotePreparedStatementParametersTest.java
+++ b/plus/src/test/java/org/apache/calcite/chinook/RemotePreparedStatementParametersTest.java
@@ -66,7 +66,7 @@ class RemotePreparedStatementParametersTest {
     Connection connection = DriverManager.getConnection(server.getURL());
     // when
     PreparedStatement pS =
-        connection.prepareStatement("select * from artist where name = ?");
+        connection.prepareStatement("select * from \"Artist\" where \"Name\" = ?");
     pS.setString(1, "AC/DC");
     // then
     ResultSet resultSet = pS.executeQuery();
diff --git a/plus/src/test/resources/sql/basic.iq b/plus/src/test/resources/sql/basic.iq
index b936b07..da8a33f 100644
--- a/plus/src/test/resources/sql/basic.iq
+++ b/plus/src/test/resources/sql/basic.iq
@@ -17,7 +17,7 @@
 !set outputformat mysql
 
 # count returns number of rows in table
-SELECT COUNT(*) as C1 FROM chinook.album;
+SELECT COUNT(*) as C1 FROM `chinook`.`Album`;
 +-----+
 | C1  |
 +-----+
@@ -27,11 +27,11 @@ SELECT COUNT(*) as C1 FROM chinook.album;
 
 !ok
 
-SELECT ar.name as NAME, COUNT(tr.trackid) AS TRACKS_COUNT, SUM(tr.milliseconds) AS MS_TOTAL
-FROM chinook.artist AS ar
-JOIN chinook.album AS al ON ar.artistid = al.artistid
-JOIN chinook.track as tr ON al.albumid = tr.albumid
-GROUP BY ar.name;
+SELECT ar.`Name` as NAME, COUNT(tr.`TrackId`) AS TRACKS_COUNT, SUM(tr.`Milliseconds`) AS MS_TOTAL
+FROM `chinook`.`Artist` AS ar
+JOIN `chinook`.`Album` AS al ON ar.`ArtistId` = al.`ArtistId`
+JOIN `chinook`.`Track` as tr ON al.`AlbumId` = tr.`AlbumId`
+GROUP BY ar.`Name`;
 
 +---------------------------------------------------------------------------------------+--------------+-----------+
 | NAME                                                                                  | TRACKS_COUNT | MS_TOTAL  |
diff --git a/plus/src/test/resources/sql/cross-join-lateral.iq b/plus/src/test/resources/sql/cross-join-lateral.iq
index 98928e5..d12865b 100644
--- a/plus/src/test/resources/sql/cross-join-lateral.iq
+++ b/plus/src/test/resources/sql/cross-join-lateral.iq
@@ -39,7 +39,7 @@ CROSS JOIN LATERAL TABLE(AUX.CODES(SC.email)) TF limit 6;
 # Checks whether CROSS JOIN LATERAL WORK WITH VIEW EXPANSION
 SELECT * FROM EXAMPLES.CODED_EMAILS;
 +-----------------------+----------+------------------------------+
-| EMAIL                 | TYPE     | CODEVALUE                    |
+| Email                 | TYPE     | CODEVALUE                    |
 +-----------------------+----------+------------------------------+
 | ftremblay@gmail.com   | BASE64   | ZnRyZW1ibGF5QGdtYWlsLmNvbQ== |
 | ftremblay@gmail.com   | HASHCODE | 1248316799                   |
diff --git a/plus/src/test/resources/sql/functions.iq b/plus/src/test/resources/sql/functions.iq
index 9d43762..889c986 100644
--- a/plus/src/test/resources/sql/functions.iq
+++ b/plus/src/test/resources/sql/functions.iq
@@ -32,7 +32,7 @@ SELECT email, ASCONCATOFPARAMS(firstname, lastname) AS joined FROM SIMPLE_CUSTOM
 # Checks whether CHOOSENCUSTOMFUNCTION function is properly computed and not passed to subschema, like jdbc
 SELECT * FROM SIMPLE_CUSTOMER WHERE email = CHOSENCUSTOMEREMAIL();
 +-----------+----------+---------------------+
-| FIRSTNAME | LASTNAME | EMAIL               |
+| FirstName | LastName | Email               |
 +-----------+----------+---------------------+
 | François  | Tremblay | ftremblay@gmail.com |
 +-----------+----------+---------------------+
diff --git a/plus/src/test/resources/sql/preferred-for-specific-user.iq b/plus/src/test/resources/sql/preferred-for-specific-user.iq
index 9822881..3de870a 100644
--- a/plus/src/test/resources/sql/preferred-for-specific-user.iq
+++ b/plus/src/test/resources/sql/preferred-for-specific-user.iq
@@ -46,10 +46,10 @@ SELECT * FROM preferred_albums;
 !ok
 
 # Preferred tracks count by genres
-SELECT tr.genreid, COUNT(tr.trackid) as TRACKS_COUNT
-FROM chinook.track AS tr
-JOIN preferred_genres AS pg ON tr.genreid = pg.id
-GROUP BY tr.genreid;
+SELECT tr.genreid, COUNT(tr.TrackId) as TRACKS_COUNT
+FROM chinook.Track AS tr
+JOIN preferred_genres AS pg ON tr.GenreId = pg.id
+GROUP BY tr.GenreId;
 +---------+--------------+
 | genreid | TRACKS_COUNT |
 +---------+--------------+
@@ -64,12 +64,12 @@ GROUP BY tr.genreid;
 !ok
 
 # should be just like above Preferred tracks count by genres
-SELECT tr.genreid, COUNT(tr.trackid) as TRACKS_COUNT
-FROM chinook.track AS tr
-WHERE tr.genreid IN (SELECT pg.id FROM preferred_genres AS pg)
-GROUP BY tr.genreid;
+SELECT tr.GenreId, COUNT(tr.TrackId) as TRACKS_COUNT
+FROM chinook.Track AS tr
+WHERE tr.GenreId IN (SELECT pg.id FROM preferred_genres AS pg)
+GROUP BY tr.GenreId;
 +---------+--------------+
-| genreid | TRACKS_COUNT |
+| GenreId | TRACKS_COUNT |
 +---------+--------------+
 |       1 |         1297 |
 |      15 |           30 |