diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java index dab445f535..4e614462e5 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java @@ -967,14 +967,17 @@ public List checkSymTablePermissions(PermissionType... permiss } return results; } - - protected PermissionResult getCreateSymTablePermission(Database database) { + + protected Table getPermissionTableDefinition() { Column idColumn = new Column("TEST_ID"); idColumn.setMappedType("INTEGER"); Column valueColumn = new Column("TEST_VALUE"); valueColumn.setMappedType("INTEGER"); + return new Table(PERMISSION_TEST_TABLE_NAME, idColumn, valueColumn); + } - Table table = new Table(PERMISSION_TEST_TABLE_NAME, idColumn, valueColumn); + protected PermissionResult getCreateSymTablePermission(Database database) { + Table table = getPermissionTableDefinition(); PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, Status.FAIL); getDropSymTablePermission(); @@ -992,15 +995,17 @@ protected PermissionResult getCreateSymTablePermission(Database database) { } protected PermissionResult getDropSymTablePermission() { - String delimiter = getDatabaseInfo().getDelimiterToken(); - delimiter = delimiter != null ? delimiter : ""; - String dropSql = "DROP TABLE " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter; + Table table = getPermissionTableDefinition(); PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, Status.FAIL); try { - getSqlTemplate().update(dropSql); - result.setStatus(Status.PASS); + if (getTableFromCache(table.getName(), true) != null) { + dropTables(false, table); + result.setStatus(Status.PASS); + } else { + result.setStatus(Status.NOT_APPLICABLE); + } } catch (SqlException e) { result.setException(e); result.setSolution("Grant DROP permission"); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDatabasePlatform.java index 9a83332ca6..b5d9174ab8 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDatabasePlatform.java @@ -233,25 +233,6 @@ public PermissionResult getDropSymTriggerPermission() { } return result; - } - - @Override - protected PermissionResult getDropSymTablePermission() { - String delimiter = getDatabaseInfo().getDelimiterToken(); - delimiter = delimiter != null ? delimiter : ""; - String dropSql = "drop table " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter; - - PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, Status.FAIL); - - try { - getSqlTemplate().update(dropSql); - result.setStatus(Status.PASS); - } catch (SqlException e) { - result.setException(e); - result.setSolution("Grant DROP permission"); - } - - return result; - } + } }