Skip to content

Commit

Permalink
Fixed liquibase#3971: SAP SQL Anywhere 17.0.11: Liquibase incorrectly…
Browse files Browse the repository at this point in the history
… reports that TIMESTAMP requested precision is longer than TIMESTAMP supported precision
  • Loading branch information
mkarg committed Jun 26, 2023
1 parent e8eb891 commit 83816e7
Showing 1 changed file with 14 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,12 @@ public DatabaseDataType toDatabaseDataType(Database database) {
&& (database instanceof PostgresDatabase
|| database instanceof OracleDatabase
|| database instanceof H2Database
|| database instanceof HsqlDatabase)) {
|| database instanceof HsqlDatabase
|| database instanceof SybaseASADatabase)) {

if (database instanceof PostgresDatabase || database instanceof H2Database) {
if (database instanceof PostgresDatabase
|| database instanceof H2Database
|| database instanceof SybaseASADatabase) {
type.addAdditionalInformation("WITH TIME ZONE");
} else {
type.addAdditionalInformation("WITH TIMEZONE");
Expand All @@ -145,12 +148,14 @@ public DatabaseDataType toDatabaseDataType(Database database) {
&& (database instanceof PostgresDatabase
|| database instanceof OracleDatabase)
|| database instanceof H2Database
|| database instanceof HsqlDatabase){
|| database instanceof HsqlDatabase
|| database instanceof SybaseASADatabase){
String additionalInformation = this.getAdditionalInformation();

if (additionalInformation != null) {
String additionInformation = additionalInformation.toUpperCase(Locale.US);
if ((database instanceof PostgresDatabase || database instanceof H2Database) && additionInformation.toUpperCase(Locale.US).contains("TIMEZONE")) {
if ((database instanceof PostgresDatabase || database instanceof H2Database || database instanceof SybaseASADatabase)
&& additionInformation.toUpperCase(Locale.US).contains("TIMEZONE")) {
additionalInformation = additionInformation.toUpperCase(Locale.US).replace("TIMEZONE", "TIME ZONE");
}
// CORE-3229 Oracle 11g doesn't support WITHOUT clause in TIMESTAMP data type
Expand All @@ -163,6 +168,11 @@ public DatabaseDataType toDatabaseDataType(Database database) {
// http://www.h2database.com/html/datatypes.html
additionalInformation = null;
}

if ((database instanceof SybaseASADatabase) && additionInformation.startsWith("WITHOUT")) {
// https://help.sap.com/docs/SAP_SQL_Anywhere/93079d4ba8e44920ae63ffb4def91f5b/81fe3e6b6ce2101487d8acce02f6aba5.html
additionalInformation = null;
}
}

type.addAdditionalInformation(additionalInformation);
Expand Down

0 comments on commit 83816e7

Please sign in to comment.