Skip to content

Commit

Permalink
0006012: Prevented SymmetricDS from using 'create or alter' syntax on…
Browse files Browse the repository at this point in the history
… SQL Server 2016 RTM
  • Loading branch information
evan-miller-jumpmind committed Oct 9, 2023
1 parent 863d166 commit 131227a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2329,7 +2329,7 @@ trigger.capture.ddl.delimiter=$
# Type: boolean
trigger.capture.ddl.check.trigger.hist=true

# Enable or disabled use of create or replace syntax on Oracle and MS-SQL 2016 and newer.
# Enable or disabled use of create or replace syntax on Oracle and MS-SQL 2016 SP1 and newer.
#
# DatabaseOverridable: true
# Tags: other
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,24 @@

public class MsSql2016DatabasePlatform extends MsSql2008DatabasePlatform {
public static final String JDBC_SUBPROTOCOL = "sqlserver";
public static final int SP1_BUILD_NUMBER = 4001;

public MsSql2016DatabasePlatform(DataSource dataSource, SqlTemplateSettings settings) {
super(dataSource, settings);
if (settings.isAllowTriggerCreateOrReplace()) {
getDatabaseInfo().setTriggersCreateOrReplaceSupported(true);
boolean triggersCreateOrReplaceSupported = true;
String versionString = sqlTemplateDirty.queryForString("select serverproperty('ProductVersion')", (Object[]) null);
if (versionString != null) {
String[] versionArray = versionString.split("[.]");
if (versionArray.length == 4) {
int majorVersion = Integer.parseInt(versionArray[0]);
if (majorVersion == 13) {
int buildNumber = Integer.parseInt(versionArray[2]);
triggersCreateOrReplaceSupported = (buildNumber >= SP1_BUILD_NUMBER);
}
}
}
getDatabaseInfo().setTriggersCreateOrReplaceSupported(triggersCreateOrReplaceSupported);
}
}

Expand Down

0 comments on commit 131227a

Please sign in to comment.