From ec639cd1f77f0e2dfe026c743a98316984f5ef3b Mon Sep 17 00:00:00 2001 From: Jan Schatteman Date: Wed, 11 Oct 2023 23:10:42 +0200 Subject: [PATCH] HHH-17097 - Remove support for MariaDB versions older than 10.4 Signed-off-by: Jan Schatteman --- docker_db.sh | 6 +++--- .../dialect/CommunityDialectSelector.java | 2 ++ .../community}/dialect/MariaDB103Dialect.java | 4 +++- .../dialect/CommunityDialectSelectorTest.java | 1 + .../internal/DefaultDialectSelector.java | 4 +--- .../hibernate/dialect/MariaDB106Dialect.java | 4 ++-- .../org/hibernate/dialect/MariaDBDialect.java | 2 +- .../dialect/MariaDBSqlAstTranslator.java | 7 +------ .../mariadb/MariaDB103SpatialDialect.java | 19 ------------------- nightly.Jenkinsfile | 8 ++++---- 10 files changed, 18 insertions(+), 39 deletions(-) rename {hibernate-core/src/main/java/org/hibernate => hibernate-community-dialects/src/main/java/org/hibernate/community}/dialect/MariaDB103Dialect.java (87%) delete mode 100644 hibernate-spatial/src/main/java/org/hibernate/spatial/dialect/mariadb/MariaDB103SpatialDialect.java diff --git a/docker_db.sh b/docker_db.sh index ff7b589bc3..6d33f1d05b 100755 --- a/docker_db.sh +++ b/docker_db.sh @@ -71,9 +71,9 @@ mariadb() { mariadb_11_1 } -mariadb_10_3() { +mariadb_10_4() { $CONTAINER_CLI rm -f mariadb || true - $CONTAINER_CLI run --name mariadb -e MYSQL_USER=hibernate_orm_test -e MYSQL_PASSWORD=hibernate_orm_test -e MYSQL_DATABASE=hibernate_orm_test -e MYSQL_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d docker.io/mariadb:10.3.39 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake + $CONTAINER_CLI run --name mariadb -e MYSQL_USER=hibernate_orm_test -e MYSQL_PASSWORD=hibernate_orm_test -e MYSQL_DATABASE=hibernate_orm_test -e MYSQL_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d docker.io/mariadb:10.4.31 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake OUTPUT= n=0 until [ "$n" -ge 5 ] @@ -953,7 +953,7 @@ if [ -z ${1} ]; then echo -e "\tmariadb" echo -e "\tmariadb_11_1" echo -e "\tmariadb_10_9" - echo -e "\tmariadb_10_3" + echo -e "\tmariadb_10_4" echo -e "\tmssql" echo -e "\tmssql_2022" echo -e "\tmssql_2017" diff --git a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/CommunityDialectSelector.java b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/CommunityDialectSelector.java index 3810e5c9cd..8968e9f4cf 100644 --- a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/CommunityDialectSelector.java +++ b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/CommunityDialectSelector.java @@ -56,6 +56,8 @@ public Class resolve(String name) { return MariaDB10Dialect.class; case "MariaDB102": return MariaDB102Dialect.class; + case "MariaDB103": + return MariaDB103Dialect.class; case "MimerSQL": return MimerSQLDialect.class; case "MySQL5": diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDB103Dialect.java b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MariaDB103Dialect.java similarity index 87% rename from hibernate-core/src/main/java/org/hibernate/dialect/MariaDB103Dialect.java rename to hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MariaDB103Dialect.java index de0e224484..345ae13d93 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDB103Dialect.java +++ b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MariaDB103Dialect.java @@ -4,9 +4,11 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or . */ -package org.hibernate.dialect; +package org.hibernate.community.dialect; import org.hibernate.LockOptions; +import org.hibernate.dialect.DatabaseVersion; +import org.hibernate.dialect.MariaDBDialect; /** * An SQL dialect for MariaDB 10.3 and later, provides sequence support, lock-timeouts, etc. diff --git a/hibernate-community-dialects/src/test/java/org/hibernate/community/dialect/CommunityDialectSelectorTest.java b/hibernate-community-dialects/src/test/java/org/hibernate/community/dialect/CommunityDialectSelectorTest.java index be9e6292c7..ada9eae748 100644 --- a/hibernate-community-dialects/src/test/java/org/hibernate/community/dialect/CommunityDialectSelectorTest.java +++ b/hibernate-community-dialects/src/test/java/org/hibernate/community/dialect/CommunityDialectSelectorTest.java @@ -38,6 +38,7 @@ public void verifyAllDialectNamingResolve() { testDialectNamingResolution( MariaDB53Dialect.class ); testDialectNamingResolution( MariaDB10Dialect.class ); testDialectNamingResolution( MariaDB102Dialect.class ); + testDialectNamingResolution( MariaDB103Dialect.class ); testDialectNamingResolution( MySQL5Dialect.class ); testDialectNamingResolution( MySQL55Dialect.class ); diff --git a/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/DefaultDialectSelector.java b/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/DefaultDialectSelector.java index e04df7c728..e7850b871c 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/DefaultDialectSelector.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/DefaultDialectSelector.java @@ -23,7 +23,6 @@ import org.hibernate.dialect.HANAColumnStoreDialect; import org.hibernate.dialect.HANARowStoreDialect; import org.hibernate.dialect.HSQLDialect; -import org.hibernate.dialect.MariaDB103Dialect; import org.hibernate.dialect.MariaDBDialect; import org.hibernate.dialect.MySQL8Dialect; import org.hibernate.dialect.MySQLDialect; @@ -85,9 +84,8 @@ public Class resolve(final String name) { case "MariaDB53": case "MariaDB10": case "MariaDB102": - return findCommunityDialect( name ); case "MariaDB103": - return MariaDB103Dialect.class; + return findCommunityDialect( name ); case "MySQL": return MySQLDialect.class; case "MySQL5": diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDB106Dialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/MariaDB106Dialect.java index 56fc6f0039..73b4dc0518 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDB106Dialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/MariaDB106Dialect.java @@ -14,10 +14,10 @@ * @deprecated use {@code MariaDBDialect(1060)} */ @Deprecated -public class MariaDB106Dialect extends MariaDB103Dialect { +public class MariaDB106Dialect extends MariaDBDialect { public MariaDB106Dialect() { - super(); + super( DatabaseVersion.make( 10, 6 ) ); } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBDialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBDialect.java index 42b4294963..757602d345 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBDialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBDialect.java @@ -48,7 +48,7 @@ * @author Gavin King */ public class MariaDBDialect extends MySQLDialect { - private static final DatabaseVersion MINIMUM_VERSION = DatabaseVersion.make( 10, 3 ); + private static final DatabaseVersion MINIMUM_VERSION = DatabaseVersion.make( 10, 4 ); private static final DatabaseVersion MYSQL57 = DatabaseVersion.make( 5, 7 ); public MariaDBDialect() { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBSqlAstTranslator.java index ca19627f83..ac611c6dba 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBSqlAstTranslator.java @@ -86,7 +86,7 @@ protected boolean shouldEmulateFetchClause(QueryPart queryPart) { @Override protected boolean supportsSimpleQueryGrouping() { - return getDialect().getVersion().isSameOrAfter( 10, 4 ); + return true; } @Override @@ -220,11 +220,6 @@ protected String getFromDual() { return " from dual"; } - @Override - protected String getFromDualForSelectOnly() { - return getDialect().getVersion().isBefore( 10, 4 ) ? getFromDual() : ""; - } - @Override public MariaDBDialect getDialect() { return this.dialect; diff --git a/hibernate-spatial/src/main/java/org/hibernate/spatial/dialect/mariadb/MariaDB103SpatialDialect.java b/hibernate-spatial/src/main/java/org/hibernate/spatial/dialect/mariadb/MariaDB103SpatialDialect.java deleted file mode 100644 index 1032865420..0000000000 --- a/hibernate-spatial/src/main/java/org/hibernate/spatial/dialect/mariadb/MariaDB103SpatialDialect.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Hibernate, Relational Persistence for Idiomatic Java - * - * License: GNU Lesser General Public License (LGPL), version 2.1 or later. - * See the lgpl.txt file in the root directory or . - */ - -package org.hibernate.spatial.dialect.mariadb; - -import org.hibernate.dialect.MariaDB103Dialect; -import org.hibernate.spatial.SpatialDialect; - -/** - * @deprecated Spatial Dialects are no longer needed. Use the standard MariaDB dialects - */ -@Deprecated -public class MariaDB103SpatialDialect extends MariaDB103Dialect implements SpatialDialect { - -} diff --git a/nightly.Jenkinsfile b/nightly.Jenkinsfile index 2e23e8d573..177f651ee7 100644 --- a/nightly.Jenkinsfile +++ b/nightly.Jenkinsfile @@ -29,7 +29,7 @@ stage('Configure') { // Minimum supported versions new BuildEnvironment( dbName: 'hsqldb_2_6' ), new BuildEnvironment( dbName: 'mysql_8_0' ), - new BuildEnvironment( dbName: 'mariadb_10_3' ), + new BuildEnvironment( dbName: 'mariadb_10_4' ), new BuildEnvironment( dbName: 'postgresql_12' ), new BuildEnvironment( dbName: 'edb_12' ), new BuildEnvironment( dbName: 'oracle_11_2' ), @@ -117,11 +117,11 @@ stage('Build') { sh "./docker_db.sh mysql_8_0" state[buildEnv.tag]['containerName'] = "mysql" break; - case "mariadb_10_3": + case "mariadb_10_4": docker.withRegistry('https://index.docker.io/v1/', 'hibernateci.hub.docker.com') { - docker.image('mariadb:10.3.39').pull() + docker.image('mariadb:10.4.31').pull() } - sh "./docker_db.sh mariadb_10_3" + sh "./docker_db.sh mariadb_10_4" state[buildEnv.tag]['containerName'] = "mariadb" break; case "postgresql_12":