Fix database name detection logic for MariaDB
See gh-25173
This commit is contained in:
committed by
Stephane Nicoll
parent
b50fb824a3
commit
053323f58b
@@ -70,8 +70,7 @@ public enum DatabaseDriver {
|
||||
/**
|
||||
* Maria DB.
|
||||
*/
|
||||
MARIADB("MySQL", "org.mariadb.jdbc.Driver", "org.mariadb.jdbc.MariaDbDataSource", "SELECT 1") {
|
||||
|
||||
MARIADB("MariaDB", "org.mariadb.jdbc.Driver", "org.mariadb.jdbc.MariaDbDataSource", "SELECT 1") {
|
||||
@Override
|
||||
public String getId() {
|
||||
return "mysql";
|
||||
@@ -122,7 +121,6 @@ public enum DatabaseDriver {
|
||||
*/
|
||||
SQLSERVER("Microsoft SQL Server", "com.microsoft.sqlserver.jdbc.SQLServerDriver",
|
||||
"com.microsoft.sqlserver.jdbc.SQLServerXADataSource", "SELECT 1") {
|
||||
|
||||
@Override
|
||||
protected boolean matchProductName(String productName) {
|
||||
return super.matchProductName(productName) || "SQL SERVER".equalsIgnoreCase(productName);
|
||||
@@ -135,7 +133,6 @@ public enum DatabaseDriver {
|
||||
*/
|
||||
FIREBIRD("Firebird", "org.firebirdsql.jdbc.FBDriver", "org.firebirdsql.ds.FBXADataSource",
|
||||
"SELECT 1 FROM RDB$DATABASE") {
|
||||
|
||||
@Override
|
||||
protected Collection<String> getUrlPrefixes() {
|
||||
return Arrays.asList("firebirdsql", "firebird");
|
||||
@@ -152,7 +149,6 @@ public enum DatabaseDriver {
|
||||
* DB2 Server.
|
||||
*/
|
||||
DB2("DB2", "com.ibm.db2.jcc.DB2Driver", "com.ibm.db2.jcc.DB2XADataSource", "SELECT 1 FROM SYSIBM.SYSDUMMY1") {
|
||||
|
||||
@Override
|
||||
protected boolean matchProductName(String productName) {
|
||||
return super.matchProductName(productName) || productName.toLowerCase(Locale.ENGLISH).startsWith("db2/");
|
||||
@@ -164,7 +160,6 @@ public enum DatabaseDriver {
|
||||
*/
|
||||
DB2_AS400("DB2 UDB for AS/400", "com.ibm.as400.access.AS400JDBCDriver",
|
||||
"com.ibm.as400.access.AS400JDBCXADataSource", "SELECT 1 FROM SYSIBM.SYSDUMMY1") {
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "db2";
|
||||
@@ -190,7 +185,6 @@ public enum DatabaseDriver {
|
||||
* Informix.
|
||||
*/
|
||||
INFORMIX("Informix Dynamic Server", "com.informix.jdbc.IfxDriver", null, "select count(*) from systables") {
|
||||
|
||||
@Override
|
||||
protected Collection<String> getUrlPrefixes() {
|
||||
return Arrays.asList("informix-sqli", "informix-direct");
|
||||
@@ -208,7 +202,6 @@ public enum DatabaseDriver {
|
||||
* Testcontainers.
|
||||
*/
|
||||
TESTCONTAINERS(null, "org.testcontainers.jdbc.ContainerDatabaseDriver") {
|
||||
|
||||
@Override
|
||||
protected Collection<String> getUrlPrefixes() {
|
||||
return Collections.singleton("tc");
|
||||
|
||||
@@ -69,6 +69,7 @@ class DatabaseDriverTests {
|
||||
assertThat(DatabaseDriver.fromProductName("HSQL Database Engine")).isEqualTo(DatabaseDriver.HSQLDB);
|
||||
assertThat(DatabaseDriver.fromProductName("SQLite")).isEqualTo(DatabaseDriver.SQLITE);
|
||||
assertThat(DatabaseDriver.fromProductName("MySQL")).isEqualTo(DatabaseDriver.MYSQL);
|
||||
assertThat(DatabaseDriver.fromProductName("MariaDB")).isEqualTo(DatabaseDriver.MARIADB);
|
||||
assertThat(DatabaseDriver.fromProductName("Oracle")).isEqualTo(DatabaseDriver.ORACLE);
|
||||
assertThat(DatabaseDriver.fromProductName("PostgreSQL")).isEqualTo(DatabaseDriver.POSTGRESQL);
|
||||
assertThat(DatabaseDriver.fromProductName("Amazon Redshift")).isEqualTo(DatabaseDriver.REDSHIFT);
|
||||
|
||||
Reference in New Issue
Block a user