From 63d687cbc3bab2c83520e681a6cd4cef19250282 Mon Sep 17 00:00:00 2001 From: Sualeh Fatehi Date: Sat, 8 Jun 2024 19:06:53 -0400 Subject: [PATCH 1/6] Update MySQL driver --- schemacrawler-jdbc-drivers/pom.xml | 2 +- schemacrawler-mysql/pom.xml | 2 +- .../src/test/resources/testColumnWithEnum.txt | 10 ++++- .../resources/testMySQLWithConnection.8.txt | 40 +++++++++++-------- .../resources/testMySQLWithConnection.LTE.txt | 40 +++++++++++-------- 5 files changed, 56 insertions(+), 38 deletions(-) diff --git a/schemacrawler-jdbc-drivers/pom.xml b/schemacrawler-jdbc-drivers/pom.xml index 4d1f71fc81..470070cec7 100644 --- a/schemacrawler-jdbc-drivers/pom.xml +++ b/schemacrawler-jdbc-drivers/pom.xml @@ -24,7 +24,7 @@ com.mysql mysql-connector-j - 8.3.0 + 8.4.0 com.google.protobuf diff --git a/schemacrawler-mysql/pom.xml b/schemacrawler-mysql/pom.xml index 9b1caf1164..5312a00199 100644 --- a/schemacrawler-mysql/pom.xml +++ b/schemacrawler-mysql/pom.xml @@ -50,7 +50,7 @@ com.mysql mysql-connector-j - 8.3.0 + 8.4.0 com.google.protobuf diff --git a/schemacrawler-mysql/src/test/resources/testColumnWithEnum.txt b/schemacrawler-mysql/src/test/resources/testColumnWithEnum.txt index b0597b9ff5..1c55008f69 100644 --- a/schemacrawler-mysql/src/test/resources/testColumnWithEnum.txt +++ b/schemacrawler-mysql/src/test/resources/testColumnWithEnum.txt @@ -3,8 +3,8 @@ System Information ======================================================================== -generated by SchemaCrawler 16.17.1 -generated on 2022-07-27 01:26:12 +generated by SchemaCrawler 16.21.2 +generated on 2024-06-08 22:51:34 @@ -276,6 +276,12 @@ VARCHAR [data type] not auto-incrementable searchable +VECTOR [data type] + defined with [(M)] + nullable + not auto-incrementable + searchable + YEAR [data type] defined with [(4)] nullable diff --git a/schemacrawler-mysql/src/test/resources/testMySQLWithConnection.8.txt b/schemacrawler-mysql/src/test/resources/testMySQLWithConnection.8.txt index c5064db26b..b0ff4a296c 100644 --- a/schemacrawler-mysql/src/test/resources/testMySQLWithConnection.8.txt +++ b/schemacrawler-mysql/src/test/resources/testMySQLWithConnection.8.txt @@ -3,10 +3,10 @@ System Information ======================================================================== -generated by SchemaCrawler 16.21.1 -generated on 2024-01-20 18:38:19 +generated by SchemaCrawler 16.21.2 +generated on 2024-06-08 18:58:48 database version MySQL 8.0.31 -driver version MySQL Connector/J mysql-connector-j-8.3.0 (Revision: 805f872a57875f311cb82487efcfb070411a3fa0) +driver version MySQL Connector/J mysql-connector-j-8.4.0 (Revision: 1c3f5c149e0bfe31c7fbeb24e2d260cd890972c4) @@ -575,6 +575,12 @@ VARCHAR [data type] not auto-incrementable searchable +VECTOR [data type] + defined with [(M)] + nullable + not auto-incrementable + searchable + YEAR [data type] defined with [(4)] nullable @@ -590,8 +596,8 @@ System Information Database Server Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- database books -hostname 2360a273a796 -server_uuid 0bb1741e-b7c3-11ee-9e42-0242ac110003 +hostname 5fba683cdabb +server_uuid 182bae8f-25c9-11ef-887e-0242ac110003 Database Information @@ -620,8 +626,8 @@ deletes are detected for TYPE_SCROLL_INSENSITIVE result sets false deletes are detected for TYPE_SCROLL_SENSITIVE result sets false does max row size include blobs true driver major version 8 -driver minor version 3 -extra name characters #@ +driver minor version 4 +extra name characters $ generated key always returned true identifier quote string ` inserts are detected for TYPE_FORWARD_ONLY result sets false @@ -761,7 +767,7 @@ supports union all true system functions DATABASE, USER, SYSTEM_USER, SESSION_USER, PASSWORD, ENCRYPT, LAST_INSERT_ID, VERSION table types LOCAL TEMPORARY, SYSTEM TABLE, SYSTEM VIEW, TABLE, VIEW time date functions DAYOFWEEK, WEEKDAY, DAYOFMONTH, DAYOFYEAR, MONTH, DAYNAME, MONTHNAME, QUARTER, WEEK, YEAR, HOUR, MINUTE, SECOND, PERIOD_ADD, PERIOD_DIFF, TO_DAYS, FROM_DAYS, DATE_FORMAT, TIME_FORMAT, CURDATE, CURRENT_DATE, CURTIME, CURRENT_TIME, NOW, SYSDATE, CURRENT_TIMESTAMP, UNIX_TIMESTAMP, FROM_UNIXTIME, SEC_TO_TIME, TIME_TO_SEC -type info BIGINT, BIGINT UNSIGNED, BINARY, BIT, BLOB, BOOL, CHAR, DATE, DATETIME, DECIMAL, DOUBLE, DOUBLE PRECISION, DOUBLE PRECISION UNSIGNED, DOUBLE UNSIGNED, ENUM, FLOAT, INT, INT UNSIGNED, INTEGER, INTEGER UNSIGNED, LONG VARBINARY, LONG VARCHAR, LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMINT UNSIGNED, MEDIUMTEXT, NUMERIC, REAL, SET, SMALLINT, SMALLINT UNSIGNED, TEXT, TIME, TIMESTAMP, TINYBLOB, TINYINT, TINYINT UNSIGNED, TINYTEXT, VARBINARY, VARCHAR, YEAR +type info BIGINT, BIGINT UNSIGNED, BINARY, BIT, BLOB, BOOL, CHAR, DATE, DATETIME, DECIMAL, DOUBLE, DOUBLE PRECISION, DOUBLE PRECISION UNSIGNED, DOUBLE UNSIGNED, ENUM, FLOAT, INT, INT UNSIGNED, INTEGER, INTEGER UNSIGNED, LONG VARBINARY, LONG VARCHAR, LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMINT UNSIGNED, MEDIUMTEXT, NUMERIC, REAL, SET, SMALLINT, SMALLINT UNSIGNED, TEXT, TIME, TIMESTAMP, TINYBLOB, TINYINT, TINYINT UNSIGNED, TINYTEXT, VARBINARY, VARCHAR, VECTOR, YEAR updates are detected for TYPE_FORWARD_ONLY result sets false updates are detected for TYPE_SCROLL_INSENSITIVE result sets false updates are detected for TYPE_SCROLL_SENSITIVE result sets false @@ -771,9 +777,9 @@ uses local files false JDBC Driver Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- -connection url jdbc:mysql://localhost:56462/books +connection url jdbc:mysql://localhost:58443/books driver name MySQL Connector/J -driver version mysql-connector-j-8.3.0 (Revision: 805f872a57875f311cb82487efcfb070411a3fa0) +driver version mysql-connector-j-8.4.0 (Revision: 1c3f5c149e0bfe31c7fbeb24e2d260cd890972c4) driver class name com.mysql.cj.jdbc.Driver is JDBC compliant false supported JDBC version 4.2 @@ -826,11 +832,6 @@ alwaysSendSetIsolation [driver property] not required; choices [FALSE, NO, TRUE, YES] value true -authenticationFidoCallbackHandler [driver property] - Fully-qualified class name of a class implementing the interface 'com.mysql.cj.callback.MysqlCallbackHandler'. This class will be used by the FIDO authentication plugin to obtain the authenticator data and signature required for the FIDO authentication process. See the documentation of 'com.mysql.cj.callback.FidoAuthenticationCallback' for more details. - not required - value null - authenticationPlugins [driver property] Comma-delimited list of classes that implement the interface 'com.mysql.cj.protocol.AuthenticationPlugin'. These plugins will be loaded at connection initialization and can be used together with their sever-side counterparts for authenticating users, unless they are disabled in the connection property 'disabledAuthenticationPlugins'. not required @@ -1351,6 +1352,11 @@ ociConfigProfile [driver property] not required value DEFAULT +openTelemetry [driver property] + Should the driver generate OpenTelemetry traces and handle context propagation to the MySQL Server? This option accepts the values "REQUIRED", "PREFERRED", and "DISABLED". If set to "REQUIRED", an OpenTelemetry library must be available at run time, or connections to the MySQL Server will fail. Setting it to "DISABLED" turns off generating OpenTelemetry instrumentation by Connector/J. Setting it to "PREFERRED" enables generating OpenTelemetry instrumentation provided that an OpenTelemetry library is available at run time, and a warning is issued otherwise. Not setting a value for the property is equivalent to setting it as "PREFERRED", but no warning is issued when no OpenTelmetry library is available at run time. Connector/J relies entirely on the OpenTelemetry exporters configured in the calling application and does not provide any means of configuring its own exporters. + not required; choices [DISABLED, PREFERRED, REQUIRED] + value PREFERRED + overrideSupportsIntegrityEnhancementFacility [driver property] Should the driver return "true" for 'DatabaseMetaData.supportsIntegrityEnhancementFacility()' even if the database doesn't support it to workaround applications that require this method to return "true" to signal support of foreign keys, even though the SQL specification states that this facility contains much more than just foreign key support (one such application being OpenOffice)? not required; choices [FALSE, NO, TRUE, YES] @@ -1414,7 +1420,7 @@ populateInsertRowWithDefaultValues [driver property] port [driver property] Port number of MySQL Server not required - value 56462 + value 58443 prepStmtCacheSize [driver property] If prepared statement caching is enabled, how many prepared statements should be cached? @@ -1457,7 +1463,7 @@ queriesBeforeRetrySource [driver property] value 50 queryInfoCacheFactory [driver property] - Name of a class implementing 'com.mysql.cj.CacheAdapterFactory' which will be used to create caches for the parsed representation of prepared statements. Prior to version 8.0.29, this property was named 'parseInfoCacheFactory', which remains as an alias. + Name of a class implementing 'com.mysql.cj.CacheAdapterFactory', which will be used to create caches for the parsed representation of prepared statements. Prior to version 8.0.29, this property was named 'parseInfoCacheFactory', which remains as an alias. not required value com.mysql.cj.PerConnectionLRUFactory diff --git a/schemacrawler-mysql/src/test/resources/testMySQLWithConnection.LTE.txt b/schemacrawler-mysql/src/test/resources/testMySQLWithConnection.LTE.txt index f29a29cd47..714bcca95d 100644 --- a/schemacrawler-mysql/src/test/resources/testMySQLWithConnection.LTE.txt +++ b/schemacrawler-mysql/src/test/resources/testMySQLWithConnection.LTE.txt @@ -3,10 +3,10 @@ System Information ======================================================================== -generated by SchemaCrawler 16.21.1 -generated on 2024-01-20 18:42:38 +generated by SchemaCrawler 16.21.2 +generated on 2024-06-08 22:51:19 database version MySQL 8.0.31 -driver version MySQL Connector/J mysql-connector-j-8.3.0 (Revision: 805f872a57875f311cb82487efcfb070411a3fa0) +driver version MySQL Connector/J mysql-connector-j-8.4.0 (Revision: 1c3f5c149e0bfe31c7fbeb24e2d260cd890972c4) @@ -575,6 +575,12 @@ VARCHAR [data type] not auto-incrementable searchable +VECTOR [data type] + defined with [(M)] + nullable + not auto-incrementable + searchable + YEAR [data type] defined with [(4)] nullable @@ -590,8 +596,8 @@ System Information Database Server Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- database books -hostname 1a2f053082a6 -server_uuid a74898a5-b7c3-11ee-9ee6-0242ac110003 +hostname d8fa4e3c109b +server_uuid 9585777b-25e9-11ef-87fb-0242ac110003 Database Information @@ -620,8 +626,8 @@ deletes are detected for TYPE_SCROLL_INSENSITIVE result sets false deletes are detected for TYPE_SCROLL_SENSITIVE result sets false does max row size include blobs true driver major version 8 -driver minor version 3 -extra name characters #@ +driver minor version 4 +extra name characters $ generated key always returned true identifier quote string ` inserts are detected for TYPE_FORWARD_ONLY result sets false @@ -762,7 +768,7 @@ supports union all true system functions DATABASE, USER, SYSTEM_USER, SESSION_USER, PASSWORD, ENCRYPT, LAST_INSERT_ID, VERSION table types LOCAL TEMPORARY, SYSTEM TABLE, SYSTEM VIEW, TABLE, VIEW time date functions DAYOFWEEK, WEEKDAY, DAYOFMONTH, DAYOFYEAR, MONTH, DAYNAME, MONTHNAME, QUARTER, WEEK, YEAR, HOUR, MINUTE, SECOND, PERIOD_ADD, PERIOD_DIFF, TO_DAYS, FROM_DAYS, DATE_FORMAT, TIME_FORMAT, CURDATE, CURRENT_DATE, CURTIME, CURRENT_TIME, NOW, SYSDATE, CURRENT_TIMESTAMP, UNIX_TIMESTAMP, FROM_UNIXTIME, SEC_TO_TIME, TIME_TO_SEC -type info BIGINT, BIGINT UNSIGNED, BINARY, BIT, BLOB, BOOL, CHAR, DATE, DATETIME, DECIMAL, DOUBLE, DOUBLE PRECISION, DOUBLE PRECISION UNSIGNED, DOUBLE UNSIGNED, ENUM, FLOAT, INT, INT UNSIGNED, INTEGER, INTEGER UNSIGNED, LONG VARBINARY, LONG VARCHAR, LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMINT UNSIGNED, MEDIUMTEXT, NUMERIC, REAL, SET, SMALLINT, SMALLINT UNSIGNED, TEXT, TIME, TIMESTAMP, TINYBLOB, TINYINT, TINYINT UNSIGNED, TINYTEXT, VARBINARY, VARCHAR, YEAR +type info BIGINT, BIGINT UNSIGNED, BINARY, BIT, BLOB, BOOL, CHAR, DATE, DATETIME, DECIMAL, DOUBLE, DOUBLE PRECISION, DOUBLE PRECISION UNSIGNED, DOUBLE UNSIGNED, ENUM, FLOAT, INT, INT UNSIGNED, INTEGER, INTEGER UNSIGNED, LONG VARBINARY, LONG VARCHAR, LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMINT UNSIGNED, MEDIUMTEXT, NUMERIC, REAL, SET, SMALLINT, SMALLINT UNSIGNED, TEXT, TIME, TIMESTAMP, TINYBLOB, TINYINT, TINYINT UNSIGNED, TINYTEXT, VARBINARY, VARCHAR, VECTOR, YEAR updates are detected for TYPE_FORWARD_ONLY result sets false updates are detected for TYPE_SCROLL_INSENSITIVE result sets false updates are detected for TYPE_SCROLL_SENSITIVE result sets false @@ -772,9 +778,9 @@ uses local files false JDBC Driver Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- -connection url jdbc:mysql://localhost:57059/books +connection url jdbc:mysql://localhost:59817/books driver name MySQL Connector/J -driver version mysql-connector-j-8.3.0 (Revision: 805f872a57875f311cb82487efcfb070411a3fa0) +driver version mysql-connector-j-8.4.0 (Revision: 1c3f5c149e0bfe31c7fbeb24e2d260cd890972c4) driver class name com.mysql.cj.jdbc.Driver is JDBC compliant false supported JDBC version 4.2 @@ -827,11 +833,6 @@ alwaysSendSetIsolation [driver property] not required; choices [FALSE, NO, TRUE, YES] value true -authenticationFidoCallbackHandler [driver property] - Fully-qualified class name of a class implementing the interface 'com.mysql.cj.callback.MysqlCallbackHandler'. This class will be used by the FIDO authentication plugin to obtain the authenticator data and signature required for the FIDO authentication process. See the documentation of 'com.mysql.cj.callback.FidoAuthenticationCallback' for more details. - not required - value null - authenticationPlugins [driver property] Comma-delimited list of classes that implement the interface 'com.mysql.cj.protocol.AuthenticationPlugin'. These plugins will be loaded at connection initialization and can be used together with their sever-side counterparts for authenticating users, unless they are disabled in the connection property 'disabledAuthenticationPlugins'. not required @@ -1352,6 +1353,11 @@ ociConfigProfile [driver property] not required value DEFAULT +openTelemetry [driver property] + Should the driver generate OpenTelemetry traces and handle context propagation to the MySQL Server? This option accepts the values "REQUIRED", "PREFERRED", and "DISABLED". If set to "REQUIRED", an OpenTelemetry library must be available at run time, or connections to the MySQL Server will fail. Setting it to "DISABLED" turns off generating OpenTelemetry instrumentation by Connector/J. Setting it to "PREFERRED" enables generating OpenTelemetry instrumentation provided that an OpenTelemetry library is available at run time, and a warning is issued otherwise. Not setting a value for the property is equivalent to setting it as "PREFERRED", but no warning is issued when no OpenTelmetry library is available at run time. Connector/J relies entirely on the OpenTelemetry exporters configured in the calling application and does not provide any means of configuring its own exporters. + not required; choices [DISABLED, PREFERRED, REQUIRED] + value PREFERRED + overrideSupportsIntegrityEnhancementFacility [driver property] Should the driver return "true" for 'DatabaseMetaData.supportsIntegrityEnhancementFacility()' even if the database doesn't support it to workaround applications that require this method to return "true" to signal support of foreign keys, even though the SQL specification states that this facility contains much more than just foreign key support (one such application being OpenOffice)? not required; choices [FALSE, NO, TRUE, YES] @@ -1415,7 +1421,7 @@ populateInsertRowWithDefaultValues [driver property] port [driver property] Port number of MySQL Server not required - value 57059 + value 59817 prepStmtCacheSize [driver property] If prepared statement caching is enabled, how many prepared statements should be cached? @@ -1458,7 +1464,7 @@ queriesBeforeRetrySource [driver property] value 50 queryInfoCacheFactory [driver property] - Name of a class implementing 'com.mysql.cj.CacheAdapterFactory' which will be used to create caches for the parsed representation of prepared statements. Prior to version 8.0.29, this property was named 'parseInfoCacheFactory', which remains as an alias. + Name of a class implementing 'com.mysql.cj.CacheAdapterFactory', which will be used to create caches for the parsed representation of prepared statements. Prior to version 8.0.29, this property was named 'parseInfoCacheFactory', which remains as an alias. not required value com.mysql.cj.PerConnectionLRUFactory From a24bbf69d5d1f239b215ebccf824b8275db67472 Mon Sep 17 00:00:00 2001 From: Sualeh Fatehi Date: Sat, 8 Jun 2024 21:10:44 -0400 Subject: [PATCH 2/6] Simplify test --- .../integration/test/AdditionalMySQLTest.java | 7 + .../src/test/resources/testColumnWithEnum.txt | 277 ------------------ 2 files changed, 7 insertions(+), 277 deletions(-) diff --git a/schemacrawler-mysql/src/test/java/schemacrawler/integration/test/AdditionalMySQLTest.java b/schemacrawler-mysql/src/test/java/schemacrawler/integration/test/AdditionalMySQLTest.java index b973bce7bd..1f51a16421 100644 --- a/schemacrawler-mysql/src/test/java/schemacrawler/integration/test/AdditionalMySQLTest.java +++ b/schemacrawler-mysql/src/test/java/schemacrawler/integration/test/AdditionalMySQLTest.java @@ -63,6 +63,8 @@ import schemacrawler.test.utility.BaseAdditionalDatabaseTest; import schemacrawler.test.utility.DatabaseTestUtility; import schemacrawler.test.utility.HeavyDatabaseTest; +import schemacrawler.tools.command.text.schema.options.SchemaTextOptions; +import schemacrawler.tools.command.text.schema.options.SchemaTextOptionsBuilder; import schemacrawler.tools.executable.SchemaCrawlerExecutable; @HeavyDatabaseTest("mysql") @@ -85,8 +87,13 @@ public void columnWithEnum() throws Exception { final SchemaCrawlerOptions schemaCrawlerOptions = DatabaseTestUtility.schemaCrawlerOptionsWithMaximumSchemaInfoLevel; + final SchemaTextOptionsBuilder textOptionsBuilder = SchemaTextOptionsBuilder.builder(); + textOptionsBuilder.noInfo(); + final SchemaTextOptions textOptions = textOptionsBuilder.toOptions(); + final SchemaCrawlerExecutable executable = new SchemaCrawlerExecutable("details"); executable.setSchemaCrawlerOptions(schemaCrawlerOptions); + executable.setAdditionalConfiguration(SchemaTextOptionsBuilder.builder(textOptions).toConfig()); assertThat( outputOf(executableExecution(getDataSource(), executable)), diff --git a/schemacrawler-mysql/src/test/resources/testColumnWithEnum.txt b/schemacrawler-mysql/src/test/resources/testColumnWithEnum.txt index 1c55008f69..e8cdef6110 100644 --- a/schemacrawler-mysql/src/test/resources/testColumnWithEnum.txt +++ b/schemacrawler-mysql/src/test/resources/testColumnWithEnum.txt @@ -1,13 +1,5 @@ -System Information -======================================================================== - -generated by SchemaCrawler 16.21.2 -generated on 2024-06-08 22:51:34 - - - Tables ======================================================================== @@ -19,272 +11,3 @@ test.shirts [table] size ENUM(6) 'small', medium', large' - - -Data Types -======================================================================== - -BIGINT [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -BIGINT UNSIGNED [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -BINARY [data type] - defined with (M) - nullable - not auto-incrementable - searchable - -BIT [data type] - defined with [(M)] - nullable - not auto-incrementable - searchable - -BLOB [data type] - defined with [(M)] - nullable - not auto-incrementable - searchable - -BOOL [data type] - defined with no parameters - nullable - auto-incrementable - searchable - -CHAR [data type] - defined with [(M)] [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -DATE [data type] - defined with no parameters - nullable - not auto-incrementable - searchable - -DATETIME [data type] - defined with [(fsp)] - nullable - not auto-incrementable - searchable - -DECIMAL [data type] - defined with [(M[,D])] [UNSIGNED] [ZEROFILL] - nullable - not auto-incrementable - searchable - -DOUBLE [data type] - defined with [(M,D)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -DOUBLE PRECISION [data type] - defined with [(M,D)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -DOUBLE PRECISION UNSIGNED [data type] - defined with [(M,D)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -DOUBLE UNSIGNED [data type] - defined with [(M,D)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -ENUM [data type] - defined with ('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -FLOAT [data type] - defined with [(M,D)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -INT [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -INTEGER [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -INTEGER UNSIGNED [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -INT UNSIGNED [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -LONGBLOB [data type] - defined with no parameters - nullable - not auto-incrementable - searchable - -LONGTEXT [data type] - defined with [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -LONG VARBINARY [data type] - defined with no parameters - nullable - not auto-incrementable - searchable - -LONG VARCHAR [data type] - defined with [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -MEDIUMBLOB [data type] - defined with no parameters - nullable - not auto-incrementable - searchable - -MEDIUMINT [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -MEDIUMINT UNSIGNED [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -MEDIUMTEXT [data type] - defined with [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -NUMERIC [data type] - defined with [(M[,D])] [UNSIGNED] [ZEROFILL] - nullable - not auto-incrementable - searchable - -REAL [data type] - defined with [(M,D)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -SET [data type] - defined with ('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -SMALLINT [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -SMALLINT UNSIGNED [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -TEXT [data type] - defined with [(M)] [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -TIME [data type] - defined with [(fsp)] - nullable - not auto-incrementable - searchable - -TIMESTAMP [data type] - defined with [(fsp)] - nullable - not auto-incrementable - searchable - -TINYBLOB [data type] - defined with no parameters - nullable - not auto-incrementable - searchable - -TINYINT [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -TINYINT UNSIGNED [data type] - defined with [(M)] [UNSIGNED] [ZEROFILL] - nullable - auto-incrementable - searchable - -TINYTEXT [data type] - defined with [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -VARBINARY [data type] - defined with (M) - nullable - not auto-incrementable - searchable - -VARCHAR [data type] - defined with (M) [CHARACTER SET charset_name] [COLLATE collation_name] - nullable - not auto-incrementable - searchable - -VECTOR [data type] - defined with [(M)] - nullable - not auto-incrementable - searchable - -YEAR [data type] - defined with [(4)] - nullable - not auto-incrementable - searchable - From 1e1401dce887561ed99b52984b36b677fa6d52b6 Mon Sep 17 00:00:00 2001 From: Sualeh Fatehi Date: Sun, 9 Jun 2024 08:36:28 -0400 Subject: [PATCH 3/6] Update Snowflake --- schemacrawler-jdbc-drivers/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemacrawler-jdbc-drivers/pom.xml b/schemacrawler-jdbc-drivers/pom.xml index 470070cec7..d3ccb8e081 100644 --- a/schemacrawler-jdbc-drivers/pom.xml +++ b/schemacrawler-jdbc-drivers/pom.xml @@ -83,7 +83,7 @@ net.snowflake snowflake-jdbc - 3.16.0 + 3.16.1 com.amazon.redshift From 7a1df6af845c9c0726a1e9f4fb4da71cd4cee755 Mon Sep 17 00:00:00 2001 From: Sualeh Fatehi Date: Sun, 9 Jun 2024 08:40:34 -0400 Subject: [PATCH 4/6] Update MariaDB driver --- .../resources/testMariaDBWithConnection.8.txt | 56 ++++++++++++++++--- .../testMariaDBWithConnection.LTE.txt | 56 ++++++++++++++++--- schemacrawler-jdbc-drivers/pom.xml | 2 +- 3 files changed, 97 insertions(+), 17 deletions(-) diff --git a/schemacrawler-dbtest/src/test/resources/testMariaDBWithConnection.8.txt b/schemacrawler-dbtest/src/test/resources/testMariaDBWithConnection.8.txt index c94dcb0063..d6889fffa4 100644 --- a/schemacrawler-dbtest/src/test/resources/testMariaDBWithConnection.8.txt +++ b/schemacrawler-dbtest/src/test/resources/testMariaDBWithConnection.8.txt @@ -3,10 +3,10 @@ System Information ======================================================================== -generated by SchemaCrawler 16.20.8 -generated on 2024-01-12 22:57:11 +generated by SchemaCrawler 16.21.2 +generated on 2024-06-09 12:38:12 database version MariaDB 10.7.3-MariaDB-1:10.7.3+maria~focal -driver version MariaDB Connector/J 3.3.2 +driver version MariaDB Connector/J 3.4.0 @@ -605,7 +605,7 @@ deletes are detected for TYPE_SCROLL_INSENSITIVE result sets false deletes are detected for TYPE_SCROLL_SENSITIVE result sets false does max row size include blobs false driver major version 3 -driver minor version 3 +driver minor version 4 extra name characters #@ generated key always returned true identifier quote string ` @@ -668,7 +668,7 @@ row id lifetime ROWID_UNSUPPORTED schema term schema schemas search string escape \ -SQL keywords ACCESSIBLE, ANALYZE, ASENSITIVE, BEFORE, BIGINT, BINARY, BLOB, CALL, CHANGE, CONDITION, DATABASE, DATABASES, DAY_HOUR, DAY_MICROSECOND, DAY_MINUTE, DAY_SECOND, DELAYED, DETERMINISTIC, DISTINCTROW, DIV, DUAL, EACH, ELSEIF, ENCLOSED, ESCAPED, EXIT, EXPLAIN, FLOAT4, FLOAT8, FORCE, FULLTEXT, GENERAL, HIGH_PRIORITY, HOUR_MICROSECOND, HOUR_MINUTE, HOUR_SECOND, IF, IGNORE, IGNORE_SERVER_IDS, INDEX, INFILE, INOUT, INT1, INT2, INT3, INT4, INT8, ITERATE, KEY, KEYS, KILL, LEAVE, LIMIT, LINEAR, LINES, LOAD, LOCALTIME, LOCALTIMESTAMP, LOCK, LONG, LONGBLOB, LONGTEXT, LOOP, LOW_PRIORITY, MASTER_HEARTBEAT_PERIOD, MASTER_SSL_VERIFY_SERVER_CERT, MAXVALUE, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, MIDDLEINT, MINUTE_MICROSECOND, MINUTE_SECOND, MOD, MODIFIES, NO_WRITE_TO_BINLOG, OPTIMIZE, OPTIONALLY, OUT, OUTFILE, PURGE, RANGE, READ_WRITE, READS, REGEXP, RELEASE, RENAME, REPEAT, REPLACE, REQUIRE, RESIGNAL, RESTRICT, RETURN, RLIKE, SCHEMAS, SECOND_MICROSECOND, SENSITIVE, SEPARATOR, SHOW, SIGNAL, SLOW, SPATIAL, SPECIFIC, SQL_BIG_RESULT, SQL_CALC_FOUND_ROWS, SQL_SMALL_RESULT, SQLEXCEPTION, SSL, STARTING, STRAIGHT_JOIN, TERMINATED, TINYBLOB, TINYINT, TINYTEXT, TRIGGER, UNDO, UNLOCK, UNSIGNED, USE, UTC_DATE, UTC_TIME, UTC_TIMESTAMP, VARBINARY, VARCHARACTER, WHILE, XOR, YEAR_MONTH, ZEROFILL +SQL keywords ACCESSIBLE, ACCOUNT, ACTION, ADDDATE, ADMIN, AFTER, AGAINST, AGGREGATE, ALGORITHM, ALWAYS, ANALYZE, ASC, ASCII, AUTHORS, AUTO, AUTO_INCREMENT, AUTOEXTEND_SIZE, AVG, AVG_ROW_LENGTH, BACKUP, BEFORE, BINLOG, BIT, BIT_AND, BIT_OR, BIT_XOR, BLOCK, BODY, BOOL, BTREE, BYTE, CACHE, CASCADE, CATALOG_NAME, CHAIN, CHANGE, CHANGED, CHANNEL, CHARSET, CHECKPOINT, CHECKSUM, CIPHER, CLASS_ORIGIN, CLIENT, COALESCE, CODE, COLLATION, COLUMN_ADD, COLUMN_CHECK, COLUMN_CREATE, COLUMN_DELETE, COLUMN_GET, COLUMN_NAME, COLUMNS, COMMENT, COMMITTED, COMPACT, COMPLETION, COMPRESSED, CONCURRENT, CONNECTION, CONSISTENT, CONSTRAINT_CATALOG, CONSTRAINT_NAME, CONSTRAINT_SCHEMA, CONTAINS, CONTEXT, CONTRIBUTORS, CONVERT, COUNT, CPU, CUME_DIST, CURDATE, CURRENT_POS, CURSOR_NAME, CURTIME, DATA, DATABASE, DATABASES, DATAFILE, DATE_ADD, DATE_SUB, DATETIME, DAY_HOUR, DAY_MICROSECOND, DAY_MINUTE, DAY_SECOND, DEFINER, DELAY_KEY_WRITE, DELAYED, DELETE_DOMAIN_ID, DENSE_RANK, DES_KEY_FILE, DESC, DIAGNOSTICS, DIRECTORY, DISABLE, DISCARD, DISK, DISTINCTROW, DIV, DO_DOMAIN_IDS, DUAL, DUMPFILE, DUPLICATE, ELSIF, EMPTY, ENABLE, ENCLOSED, ENDS, ENGINE, ENGINES, ENUM, ERROR, ERRORS, ESCAPED, EVENT, EVENTS, EVERY, EXAMINED, EXCEPTION, EXCHANGE, EXCLUDE, EXPANSION, EXPIRE, EXPLAIN, EXPORT, EXTENDED, EXTENT_SIZE, EXTRACT, FAST, FAULTS, FEDERATED, FIELDS, FILE, FIRST, FIRST_VALUE, FIXED, FLOAT4, FLOAT8, FLUSH, FOLLOWING, FOLLOWS, FORCE, FORMAT, FOUND, FULLTEXT, GENERAL, GENERATED, GET_FORMAT, GOTO, GRANTS, GROUP_CONCAT, HARD, HASH, HELP, HIGH_PRIORITY, HISTORY, HOST, HOSTS, HOUR_MICROSECOND, HOUR_MINUTE, HOUR_SECOND, ID, IDENTIFIED, IGNORE, IGNORE_DOMAIN_IDS, IGNORE_SERVER_IDS, IGNORED, IMPORT, INCREMENT, INDEX, INDEXES, INFILE, INITIAL_SIZE, INSERT_METHOD, INSTALL, INT1, INT2, INT3, INT4, INT8, INVISIBLE, INVOKER, IO, IO_THREAD, IPC, ISOLATION, ISOPEN, ISSUER, JSON, JSON_ARRAYAGG, JSON_OBJECTAGG, JSON_TABLE, KEY, KEY_BLOCK_SIZE, KEYS, KILL, LAG, LAST, LAST_VALUE, LASTVAL, LEAD, LEAVES, LESS, LEVEL, LIMIT, LINEAR, LINES, LIST, LOAD, LOCK, LOCKED, LOCKS, LOGFILE, LOGS, LONG, LONGBLOB, LONGTEXT, LOW_PRIORITY, MASTER, MASTER_CONNECT_RETRY, MASTER_DELAY, MASTER_DEMOTE_TO_SLAVE, MASTER_GTID_POS, MASTER_HEARTBEAT_PERIOD, MASTER_HOST, MASTER_LOG_FILE, MASTER_LOG_POS, MASTER_PASSWORD, MASTER_PORT, MASTER_SERVER_ID, MASTER_SSL, MASTER_SSL_CA, MASTER_SSL_CAPATH, MASTER_SSL_CERT, MASTER_SSL_CIPHER, MASTER_SSL_CRL, MASTER_SSL_CRLPATH, MASTER_SSL_KEY, MASTER_SSL_VERIFY_SERVER_CERT, MASTER_USE_GTID, MASTER_USER, MAX, MAX_CONNECTIONS_PER_HOUR, MAX_QUERIES_PER_HOUR, MAX_ROWS, MAX_SIZE, MAX_STATEMENT_TIME, MAX_UPDATES_PER_HOUR, MAX_USER_CONNECTIONS, MAXVALUE, MEDIAN, MEDIUM, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, MEMORY, MESSAGE_TEXT, MICROSECOND, MID, MIDDLEINT, MIGRATE, MIN, MIN_ROWS, MINUS, MINUTE_MICROSECOND, MINUTE_SECOND, MINVALUE, MOD, MODE, MODIFY, MONITOR, MUTEX, MYSQL, MYSQL_ERRNO, NAME, NAMES, NESTED, NEVER, NEXT, NEXTVAL, NO_WAIT, NO_WRITE_TO_BINLOG, NOCACHE, NOCYCLE, NODEGROUP, NOMAXVALUE, NOMINVALUE, NOTFOUND, NOW, NOWAIT, NTH_VALUE, NTILE, NUMBER, NVARCHAR, OFFSET, OLD_PASSWORD, ONE, ONLINE, OPTIMIZE, OPTION, OPTIONALLY, OPTIONS, ORDINALITY, OTHERS, OUTFILE, OWNER, PACK_KEYS, PACKAGE, PAGE, PAGE_CHECKSUM, PARSE_VCOL_EXPR, PARSER, PARTIAL, PARTITIONING, PARTITIONS, PASSWORD, PATH, PERCENT_RANK, PERCENTILE_CONT, PERCENTILE_DISC, PERIOD, PERSISTENT, PHASE, PLUGIN, PLUGINS, PORT, PORTION, POSITION, PRECEDES, PRECEDING, PRESERVE, PREV, PREVIOUS, PRIMARY, PRIVILEGES, PROCESS, PROCESSLIST, PROFILE, PROFILES, PROXY, PURGE, QUARTER, QUERY, QUICK, RAISE, RANK, RAW, READ, READ_ONLY, READ_WRITE, REBUILD, RECOVER, REDO_BUFFER_SIZE, REDOFILE, REDUNDANT, REF_SYSTEM_ID, REGEXP, RELAY, RELAY_LOG_FILE, RELAY_LOG_POS, RELAY_THREAD, RELAYLOG, RELOAD, REMOVE, RENAME, REORGANIZE, REPAIR, REPEATABLE, REPLACE, REPLAY, REPLICA, REPLICA_POS, REPLICAS, REPLICATION, REQUIRE, RESET, RESTART, RESTORE, RESTRICT, RESUME, RETURNED_SQLSTATE, RETURNING, REUSE, REVERSE, RLIKE, ROLE, ROUTINE, ROW_COUNT, ROW_FORMAT, ROW_NUMBER, ROWCOUNT, ROWNUM, ROWTYPE, RTREE, SCHEDULE, SCHEMA, SCHEMA_NAME, SCHEMAS, SECOND_MICROSECOND, SECURITY, SEPARATOR, SEQUENCE, SERIAL, SERIALIZABLE, SERVER, SESSION, SETVAL, SHARE, SHOW, SHUTDOWN, SIGNED, SIMPLE, SKIP, SLAVE, SLAVE_POS, SLAVES, SLOW, SNAPSHOT, SOCKET, SOFT, SONAME, SOUNDS, SOURCE, SPATIAL, SQL_AFTER_GTIDS, SQL_BEFORE_GTIDS, SQL_BIG_RESULT, SQL_BUFFER_RESULT, SQL_CACHE, SQL_CALC_FOUND_ROWS, SQL_NO_CACHE, SQL_SMALL_RESULT, SQL_THREAD, SQL_TSI_DAY, SQL_TSI_HOUR, SQL_TSI_MINUTE, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_SECOND, SQL_TSI_WEEK, SQL_TSI_YEAR, SSL, STAGE, STARTING, STARTS, STATEMENT, STATS_AUTO_RECALC, STATS_PERSISTENT, STATS_SAMPLE_PAGES, STATUS, STD, STDDEV, STDDEV_POP, STDDEV_SAMP, STOP, STORAGE, STORED, STRAIGHT_JOIN, STRING, SUBCLASS_ORIGIN, SUBDATE, SUBJECT, SUBPARTITION, SUBPARTITIONS, SUBSTR, SUBSTRING, SUM, SUPER, SUSPEND, SWAPS, SWITCHES, SYSDATE, SYSTEM_TIME, TABLE_CHECKSUM, TABLE_NAME, TABLES, TABLESPACE, TEMPORARY, TEMPTABLE, TERMINATED, TEXT, THAN, THREADS, TIES, TIMESTAMPADD, TIMESTAMPDIFF, TINYBLOB, TINYINT, TINYTEXT, TRANSACTION, TRANSACTIONAL, TRIGGERS, TRIM, TRIM_ORACLE, TRUNCATE, TYPE, UNBOUNDED, UNCOMMITTED, UNDEFINED, UNDO_BUFFER_SIZE, UNDOFILE, UNICODE, UNINSTALL, UNLOCK, UNSIGNED, UPGRADE, USAGE, USE, USE_FRM, USER_RESOURCES, UTC_DATE, UTC_TIME, UTC_TIMESTAMP, VALIDATION, VAR_POP, VAR_SAMP, VARBINARY, VARCHAR2, VARCHARACTER, VARIABLES, VARIANCE, VERSIONING, VIA, VIEW, VIRTUAL, VISIBLE, WAIT, WARNINGS, WEEK, WEIGHT_STRING, WORK, WRAPPER, WRITE, X509, XA, XML, XOR, YEAR_MONTH, ZEROFILL SQL state type 2 stores lower case identifiers true stores lower case quoted identifiers true @@ -756,9 +756,9 @@ uses local files false JDBC Driver Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- -connection url jdbc:mariadb://localhost:60912/books?user=schemacrawler&password=*** +connection url jdbc:mariadb://localhost:55437/books?user=schemacrawler&password=*** driver name MariaDB Connector/J -driver version 3.3.2 +driver version 3.4.0 driver class name org.mariadb.jdbc.Driver is JDBC compliant true supported JDBC version 4.2 @@ -801,6 +801,11 @@ connectionAttributes [driver property] not required value null +connectionTimeZone [driver property] + + not required + value null + connectTimeout [driver property] The connect timeout value, in milliseconds, or zero for no timeout. not required @@ -846,6 +851,21 @@ enabledSslProtocolSuites [driver property] not required value null +fallbackToSystemKeyStore [driver property] + Indicate if keystore default implementation can be used. Connector use keystore option if set or if not, use javax.net.ssl.keyStore* system properties to load keystore if this option is enable + not required + value true + +fallbackToSystemTrustStore [driver property] + Indicate if truststore default implementation can be used. Connector use serverSslCert option if set or if not, use java default truststore if this option is enable + not required + value true + +forceConnectionTimeZoneToSession [driver property] + + not required + value null + galeraAllowedState [driver property] not required @@ -871,6 +891,11 @@ initSql [driver property] not required value null +jdbcCompliantTruncation [driver property] + If set, the connector ensures STRICT_TRANS_TABLES is always set to follow JDBC expected truncation. Default is not set, since it will add a new command for each connection and strict mode is already the server default. + not required + value true + keyPassword [driver property] not required @@ -926,11 +951,21 @@ minPoolSize [driver property] not required value 8 +nullDatabaseMeansCurrent [driver property] + When enable, in DatabaseMetadata, will handle null database/schema (depending on UseCatalog=catalog/schema) as current. (Alias nullCatalogMeansCurrent) + not required + value false + password [driver property] Password of database user not required value *** +permitRedirect [driver property] + permit server redirection. Default is true + not required + value true + pipe [driver property] not required @@ -956,6 +991,11 @@ prepStmtCacheSize [driver property] not required value 250 +preserveInstants [driver property] + + not required + value false + registerJmxPool [driver property] Register JMX monitoring pools. Default: true. not required @@ -972,7 +1012,7 @@ retriesAllDown [driver property] value 120 returnMultiValuesGeneratedIds [driver property] - For compatibility with 2.x MariaDB connector. This permit to return generated ids from multi-values insert + For compatibility with 2.x MariaDB connector. This permit to return generated ids from multi-values insert not required value false diff --git a/schemacrawler-dbtest/src/test/resources/testMariaDBWithConnection.LTE.txt b/schemacrawler-dbtest/src/test/resources/testMariaDBWithConnection.LTE.txt index 86b3c6b74d..004dc31f22 100644 --- a/schemacrawler-dbtest/src/test/resources/testMariaDBWithConnection.LTE.txt +++ b/schemacrawler-dbtest/src/test/resources/testMariaDBWithConnection.LTE.txt @@ -3,10 +3,10 @@ System Information ======================================================================== -generated by SchemaCrawler 16.20.8 -generated on 2024-01-12 23:19:52 +generated by SchemaCrawler 16.21.2 +generated on 2024-06-09 12:38:56 database version MariaDB 10.7.3-MariaDB-1:10.7.3+maria~focal -driver version MariaDB Connector/J 3.3.2 +driver version MariaDB Connector/J 3.4.0 @@ -605,7 +605,7 @@ deletes are detected for TYPE_SCROLL_INSENSITIVE result sets false deletes are detected for TYPE_SCROLL_SENSITIVE result sets false does max row size include blobs false driver major version 3 -driver minor version 3 +driver minor version 4 extra name characters #@ generated key always returned true identifier quote string ` @@ -668,7 +668,7 @@ row id lifetime ROWID_UNSUPPORTED schema term schema schemas search string escape \ -SQL keywords ACCESSIBLE, ANALYZE, ASENSITIVE, BEFORE, BIGINT, BINARY, BLOB, CALL, CHANGE, CONDITION, DATABASE, DATABASES, DAY_HOUR, DAY_MICROSECOND, DAY_MINUTE, DAY_SECOND, DELAYED, DETERMINISTIC, DISTINCTROW, DIV, DUAL, EACH, ELSEIF, ENCLOSED, ESCAPED, EXIT, EXPLAIN, FLOAT4, FLOAT8, FORCE, FULLTEXT, GENERAL, HIGH_PRIORITY, HOUR_MICROSECOND, HOUR_MINUTE, HOUR_SECOND, IF, IGNORE, IGNORE_SERVER_IDS, INDEX, INFILE, INOUT, INT1, INT2, INT3, INT4, INT8, ITERATE, KEY, KEYS, KILL, LEAVE, LIMIT, LINEAR, LINES, LOAD, LOCALTIME, LOCALTIMESTAMP, LOCK, LONG, LONGBLOB, LONGTEXT, LOOP, LOW_PRIORITY, MASTER_HEARTBEAT_PERIOD, MASTER_SSL_VERIFY_SERVER_CERT, MAXVALUE, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, MIDDLEINT, MINUTE_MICROSECOND, MINUTE_SECOND, MOD, MODIFIES, NO_WRITE_TO_BINLOG, OPTIMIZE, OPTIONALLY, OUT, OUTFILE, PURGE, RANGE, READ_WRITE, READS, REGEXP, RELEASE, RENAME, REPEAT, REPLACE, REQUIRE, RESIGNAL, RESTRICT, RETURN, RLIKE, SCHEMAS, SECOND_MICROSECOND, SENSITIVE, SEPARATOR, SHOW, SIGNAL, SLOW, SPATIAL, SPECIFIC, SQL_BIG_RESULT, SQL_CALC_FOUND_ROWS, SQL_SMALL_RESULT, SQLEXCEPTION, SSL, STARTING, STRAIGHT_JOIN, TERMINATED, TINYBLOB, TINYINT, TINYTEXT, TRIGGER, UNDO, UNLOCK, UNSIGNED, USE, UTC_DATE, UTC_TIME, UTC_TIMESTAMP, VARBINARY, VARCHARACTER, WHILE, XOR, YEAR_MONTH, ZEROFILL +SQL keywords ACCESSIBLE, ACCOUNT, ACTION, ADDDATE, ADMIN, AFTER, AGAINST, AGGREGATE, ALGORITHM, ALWAYS, ANALYZE, ASC, ASCII, AUTHORS, AUTO, AUTO_INCREMENT, AUTOEXTEND_SIZE, AVG, AVG_ROW_LENGTH, BACKUP, BEFORE, BINLOG, BIT, BIT_AND, BIT_OR, BIT_XOR, BLOCK, BODY, BOOL, BTREE, BYTE, CACHE, CASCADE, CATALOG_NAME, CHAIN, CHANGE, CHANGED, CHANNEL, CHARSET, CHECKPOINT, CHECKSUM, CIPHER, CLASS_ORIGIN, CLIENT, COALESCE, CODE, COLLATION, COLUMN_ADD, COLUMN_CHECK, COLUMN_CREATE, COLUMN_DELETE, COLUMN_GET, COLUMN_NAME, COLUMNS, COMMENT, COMMITTED, COMPACT, COMPLETION, COMPRESSED, CONCURRENT, CONNECTION, CONSISTENT, CONSTRAINT_CATALOG, CONSTRAINT_NAME, CONSTRAINT_SCHEMA, CONTAINS, CONTEXT, CONTRIBUTORS, CONVERT, COUNT, CPU, CUME_DIST, CURDATE, CURRENT_POS, CURSOR_NAME, CURTIME, DATA, DATABASE, DATABASES, DATAFILE, DATE_ADD, DATE_SUB, DATETIME, DAY_HOUR, DAY_MICROSECOND, DAY_MINUTE, DAY_SECOND, DEFINER, DELAY_KEY_WRITE, DELAYED, DELETE_DOMAIN_ID, DENSE_RANK, DES_KEY_FILE, DESC, DIAGNOSTICS, DIRECTORY, DISABLE, DISCARD, DISK, DISTINCTROW, DIV, DO_DOMAIN_IDS, DUAL, DUMPFILE, DUPLICATE, ELSIF, EMPTY, ENABLE, ENCLOSED, ENDS, ENGINE, ENGINES, ENUM, ERROR, ERRORS, ESCAPED, EVENT, EVENTS, EVERY, EXAMINED, EXCEPTION, EXCHANGE, EXCLUDE, EXPANSION, EXPIRE, EXPLAIN, EXPORT, EXTENDED, EXTENT_SIZE, EXTRACT, FAST, FAULTS, FEDERATED, FIELDS, FILE, FIRST, FIRST_VALUE, FIXED, FLOAT4, FLOAT8, FLUSH, FOLLOWING, FOLLOWS, FORCE, FORMAT, FOUND, FULLTEXT, GENERAL, GENERATED, GET_FORMAT, GOTO, GRANTS, GROUP_CONCAT, HARD, HASH, HELP, HIGH_PRIORITY, HISTORY, HOST, HOSTS, HOUR_MICROSECOND, HOUR_MINUTE, HOUR_SECOND, ID, IDENTIFIED, IGNORE, IGNORE_DOMAIN_IDS, IGNORE_SERVER_IDS, IGNORED, IMPORT, INCREMENT, INDEX, INDEXES, INFILE, INITIAL_SIZE, INSERT_METHOD, INSTALL, INT1, INT2, INT3, INT4, INT8, INVISIBLE, INVOKER, IO, IO_THREAD, IPC, ISOLATION, ISOPEN, ISSUER, JSON, JSON_ARRAYAGG, JSON_OBJECTAGG, JSON_TABLE, KEY, KEY_BLOCK_SIZE, KEYS, KILL, LAG, LAST, LAST_VALUE, LASTVAL, LEAD, LEAVES, LESS, LEVEL, LIMIT, LINEAR, LINES, LIST, LOAD, LOCK, LOCKED, LOCKS, LOGFILE, LOGS, LONG, LONGBLOB, LONGTEXT, LOW_PRIORITY, MASTER, MASTER_CONNECT_RETRY, MASTER_DELAY, MASTER_DEMOTE_TO_SLAVE, MASTER_GTID_POS, MASTER_HEARTBEAT_PERIOD, MASTER_HOST, MASTER_LOG_FILE, MASTER_LOG_POS, MASTER_PASSWORD, MASTER_PORT, MASTER_SERVER_ID, MASTER_SSL, MASTER_SSL_CA, MASTER_SSL_CAPATH, MASTER_SSL_CERT, MASTER_SSL_CIPHER, MASTER_SSL_CRL, MASTER_SSL_CRLPATH, MASTER_SSL_KEY, MASTER_SSL_VERIFY_SERVER_CERT, MASTER_USE_GTID, MASTER_USER, MAX, MAX_CONNECTIONS_PER_HOUR, MAX_QUERIES_PER_HOUR, MAX_ROWS, MAX_SIZE, MAX_STATEMENT_TIME, MAX_UPDATES_PER_HOUR, MAX_USER_CONNECTIONS, MAXVALUE, MEDIAN, MEDIUM, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, MEMORY, MESSAGE_TEXT, MICROSECOND, MID, MIDDLEINT, MIGRATE, MIN, MIN_ROWS, MINUS, MINUTE_MICROSECOND, MINUTE_SECOND, MINVALUE, MOD, MODE, MODIFY, MONITOR, MUTEX, MYSQL, MYSQL_ERRNO, NAME, NAMES, NESTED, NEVER, NEXT, NEXTVAL, NO_WAIT, NO_WRITE_TO_BINLOG, NOCACHE, NOCYCLE, NODEGROUP, NOMAXVALUE, NOMINVALUE, NOTFOUND, NOW, NOWAIT, NTH_VALUE, NTILE, NUMBER, NVARCHAR, OFFSET, OLD_PASSWORD, ONE, ONLINE, OPTIMIZE, OPTION, OPTIONALLY, OPTIONS, ORDINALITY, OTHERS, OUTFILE, OWNER, PACK_KEYS, PACKAGE, PAGE, PAGE_CHECKSUM, PARSE_VCOL_EXPR, PARSER, PARTIAL, PARTITIONING, PARTITIONS, PASSWORD, PATH, PERCENT_RANK, PERCENTILE_CONT, PERCENTILE_DISC, PERIOD, PERSISTENT, PHASE, PLUGIN, PLUGINS, PORT, PORTION, POSITION, PRECEDES, PRECEDING, PRESERVE, PREV, PREVIOUS, PRIMARY, PRIVILEGES, PROCESS, PROCESSLIST, PROFILE, PROFILES, PROXY, PURGE, QUARTER, QUERY, QUICK, RAISE, RANK, RAW, READ, READ_ONLY, READ_WRITE, REBUILD, RECOVER, REDO_BUFFER_SIZE, REDOFILE, REDUNDANT, REF_SYSTEM_ID, REGEXP, RELAY, RELAY_LOG_FILE, RELAY_LOG_POS, RELAY_THREAD, RELAYLOG, RELOAD, REMOVE, RENAME, REORGANIZE, REPAIR, REPEATABLE, REPLACE, REPLAY, REPLICA, REPLICA_POS, REPLICAS, REPLICATION, REQUIRE, RESET, RESTART, RESTORE, RESTRICT, RESUME, RETURNED_SQLSTATE, RETURNING, REUSE, REVERSE, RLIKE, ROLE, ROUTINE, ROW_COUNT, ROW_FORMAT, ROW_NUMBER, ROWCOUNT, ROWNUM, ROWTYPE, RTREE, SCHEDULE, SCHEMA, SCHEMA_NAME, SCHEMAS, SECOND_MICROSECOND, SECURITY, SEPARATOR, SEQUENCE, SERIAL, SERIALIZABLE, SERVER, SESSION, SETVAL, SHARE, SHOW, SHUTDOWN, SIGNED, SIMPLE, SKIP, SLAVE, SLAVE_POS, SLAVES, SLOW, SNAPSHOT, SOCKET, SOFT, SONAME, SOUNDS, SOURCE, SPATIAL, SQL_AFTER_GTIDS, SQL_BEFORE_GTIDS, SQL_BIG_RESULT, SQL_BUFFER_RESULT, SQL_CACHE, SQL_CALC_FOUND_ROWS, SQL_NO_CACHE, SQL_SMALL_RESULT, SQL_THREAD, SQL_TSI_DAY, SQL_TSI_HOUR, SQL_TSI_MINUTE, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_SECOND, SQL_TSI_WEEK, SQL_TSI_YEAR, SSL, STAGE, STARTING, STARTS, STATEMENT, STATS_AUTO_RECALC, STATS_PERSISTENT, STATS_SAMPLE_PAGES, STATUS, STD, STDDEV, STDDEV_POP, STDDEV_SAMP, STOP, STORAGE, STORED, STRAIGHT_JOIN, STRING, SUBCLASS_ORIGIN, SUBDATE, SUBJECT, SUBPARTITION, SUBPARTITIONS, SUBSTR, SUBSTRING, SUM, SUPER, SUSPEND, SWAPS, SWITCHES, SYSDATE, SYSTEM_TIME, TABLE_CHECKSUM, TABLE_NAME, TABLES, TABLESPACE, TEMPORARY, TEMPTABLE, TERMINATED, TEXT, THAN, THREADS, TIES, TIMESTAMPADD, TIMESTAMPDIFF, TINYBLOB, TINYINT, TINYTEXT, TRANSACTION, TRANSACTIONAL, TRIGGERS, TRIM, TRIM_ORACLE, TRUNCATE, TYPE, UNBOUNDED, UNCOMMITTED, UNDEFINED, UNDO_BUFFER_SIZE, UNDOFILE, UNICODE, UNINSTALL, UNLOCK, UNSIGNED, UPGRADE, USAGE, USE, USE_FRM, USER_RESOURCES, UTC_DATE, UTC_TIME, UTC_TIMESTAMP, VALIDATION, VAR_POP, VAR_SAMP, VARBINARY, VARCHAR2, VARCHARACTER, VARIABLES, VARIANCE, VERSIONING, VIA, VIEW, VIRTUAL, VISIBLE, WAIT, WARNINGS, WEEK, WEIGHT_STRING, WORK, WRAPPER, WRITE, X509, XA, XML, XOR, YEAR_MONTH, ZEROFILL SQL state type 2 stores lower case identifiers true stores lower case quoted identifiers true @@ -757,9 +757,9 @@ uses local files false JDBC Driver Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- -connection url jdbc:mariadb://localhost:62544/books?user=schemacrawler&password=*** +connection url jdbc:mariadb://localhost:55511/books?user=schemacrawler&password=*** driver name MariaDB Connector/J -driver version 3.3.2 +driver version 3.4.0 driver class name org.mariadb.jdbc.Driver is JDBC compliant true supported JDBC version 4.2 @@ -802,6 +802,11 @@ connectionAttributes [driver property] not required value null +connectionTimeZone [driver property] + + not required + value null + connectTimeout [driver property] The connect timeout value, in milliseconds, or zero for no timeout. not required @@ -847,6 +852,21 @@ enabledSslProtocolSuites [driver property] not required value null +fallbackToSystemKeyStore [driver property] + Indicate if keystore default implementation can be used. Connector use keystore option if set or if not, use javax.net.ssl.keyStore* system properties to load keystore if this option is enable + not required + value true + +fallbackToSystemTrustStore [driver property] + Indicate if truststore default implementation can be used. Connector use serverSslCert option if set or if not, use java default truststore if this option is enable + not required + value true + +forceConnectionTimeZoneToSession [driver property] + + not required + value null + galeraAllowedState [driver property] not required @@ -872,6 +892,11 @@ initSql [driver property] not required value null +jdbcCompliantTruncation [driver property] + If set, the connector ensures STRICT_TRANS_TABLES is always set to follow JDBC expected truncation. Default is not set, since it will add a new command for each connection and strict mode is already the server default. + not required + value true + keyPassword [driver property] not required @@ -927,11 +952,21 @@ minPoolSize [driver property] not required value 8 +nullDatabaseMeansCurrent [driver property] + When enable, in DatabaseMetadata, will handle null database/schema (depending on UseCatalog=catalog/schema) as current. (Alias nullCatalogMeansCurrent) + not required + value false + password [driver property] Password of database user not required value *** +permitRedirect [driver property] + permit server redirection. Default is true + not required + value true + pipe [driver property] not required @@ -957,6 +992,11 @@ prepStmtCacheSize [driver property] not required value 250 +preserveInstants [driver property] + + not required + value false + registerJmxPool [driver property] Register JMX monitoring pools. Default: true. not required @@ -973,7 +1013,7 @@ retriesAllDown [driver property] value 120 returnMultiValuesGeneratedIds [driver property] - For compatibility with 2.x MariaDB connector. This permit to return generated ids from multi-values insert + For compatibility with 2.x MariaDB connector. This permit to return generated ids from multi-values insert not required value false diff --git a/schemacrawler-jdbc-drivers/pom.xml b/schemacrawler-jdbc-drivers/pom.xml index d3ccb8e081..a5782adee3 100644 --- a/schemacrawler-jdbc-drivers/pom.xml +++ b/schemacrawler-jdbc-drivers/pom.xml @@ -119,7 +119,7 @@ org.mariadb.jdbc mariadb-java-client - 3.3.3 + 3.4.0 From c0203b1f61038589b5d862a6a9a8e69a8dae40a0 Mon Sep 17 00:00:00 2001 From: Sualeh Fatehi Date: Sun, 9 Jun 2024 08:41:32 -0400 Subject: [PATCH 5/6] Update maven-enforcer-plugin --- schemacrawler-parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemacrawler-parent/pom.xml b/schemacrawler-parent/pom.xml index 08987c1db3..2828b79954 100644 --- a/schemacrawler-parent/pom.xml +++ b/schemacrawler-parent/pom.xml @@ -247,7 +247,7 @@ true org.apache.maven.plugins maven-enforcer-plugin - 3.4.1 + 3.5.0 org.apache.maven.plugins From 8b71e54cbb1d9acc8ce4e5bb3fcd2b466095fdf3 Mon Sep 17 00:00:00 2001 From: Sualeh Fatehi Date: Sun, 9 Jun 2024 08:43:46 -0400 Subject: [PATCH 6/6] Update DuckDB driver --- .../src/test/resources/testDuckDBWithConnection.8.txt | 8 ++++---- .../src/test/resources/testDuckDBWithConnection.LTE.txt | 8 ++++---- schemacrawler-jdbc-drivers/pom.xml | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/schemacrawler-dbtest/src/test/resources/testDuckDBWithConnection.8.txt b/schemacrawler-dbtest/src/test/resources/testDuckDBWithConnection.8.txt index 86972d24d8..656f34b955 100644 --- a/schemacrawler-dbtest/src/test/resources/testDuckDBWithConnection.8.txt +++ b/schemacrawler-dbtest/src/test/resources/testDuckDBWithConnection.8.txt @@ -4,8 +4,8 @@ System Information ======================================================================== generated by SchemaCrawler 16.21.2 -generated on 2024-06-02 20:22:27 -database version DuckDB v0.10.3 +generated on 2024-06-09 12:43:07 +database version DuckDB v1.0.0 driver version DuckDBJ 1.0 @@ -178,7 +178,7 @@ System Information Database Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- database product name DuckDB -database product version v0.10.3 +database product version v1.0.0 database user name @@ -312,7 +312,7 @@ uses local files true JDBC Driver Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- -connection url jdbc:duckdb:C:\Users\SUALEH~1\AppData\Local\Temp\8301385665973411692\sc.f46d2155-d896-4bef-9f61-ccfa4eb2dc2a.db +connection url jdbc:duckdb:C:\Users\SUALEH~1\AppData\Local\Temp\5232448207536680124\sc.fa5f2b8f-708b-4a9c-8c1f-a4ce84fcc159.db driver name DuckDBJ driver version 1.0 driver class name org.duckdb.DuckDBDriver diff --git a/schemacrawler-dbtest/src/test/resources/testDuckDBWithConnection.LTE.txt b/schemacrawler-dbtest/src/test/resources/testDuckDBWithConnection.LTE.txt index 4fd51fac35..faacb92fc3 100644 --- a/schemacrawler-dbtest/src/test/resources/testDuckDBWithConnection.LTE.txt +++ b/schemacrawler-dbtest/src/test/resources/testDuckDBWithConnection.LTE.txt @@ -4,8 +4,8 @@ System Information ======================================================================== generated by SchemaCrawler 16.21.2 -generated on 2024-06-02 20:22:58 -database version DuckDB v0.10.3 +generated on 2024-06-09 12:43:10 +database version DuckDB v1.0.0 driver version DuckDBJ 1.0 @@ -178,7 +178,7 @@ System Information Database Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- database product name DuckDB -database product version v0.10.3 +database product version v1.0.0 database user name @@ -313,7 +313,7 @@ uses local files true JDBC Driver Information -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- -connection url jdbc:duckdb:C:\Users\SUALEH~1\AppData\Local\Temp\221146286755798277\sc.0bffcec5-3cb3-4afa-98ea-2cf96e890945.db +connection url jdbc:duckdb:C:\Users\SUALEH~1\AppData\Local\Temp\2806477546174282586\sc.0681adef-1fbd-467e-9e17-006dfeb64950.db driver name DuckDBJ driver version 1.0 driver class name org.duckdb.DuckDBDriver diff --git a/schemacrawler-jdbc-drivers/pom.xml b/schemacrawler-jdbc-drivers/pom.xml index a5782adee3..f4ccd03d45 100644 --- a/schemacrawler-jdbc-drivers/pom.xml +++ b/schemacrawler-jdbc-drivers/pom.xml @@ -114,7 +114,7 @@ org.duckdb duckdb_jdbc - 0.10.3 + 1.0.0 org.mariadb.jdbc