提交 99f6eaf4 编写于 作者: S serge-rider

#5424 DROP object comments in DDL - append delimiter

上级 087a2c24
......@@ -190,10 +190,15 @@ public abstract class SQLTableManager<OBJECT_TYPE extends JDBCTable, CONTAINER_T
if (isIncludeDropInDDL()) {
actions.add(new SQLDatabasePersistActionComment(table.getDataSource(), "Drop table"));
for (DBEPersistAction delAction : new ObjectDeleteCommand(table, ModelMessages.model_jdbc_delete_object).getPersistActions(monitor, options)) {
String script = delAction.getScript();
String delimiter = SQLUtils.getScriptLineDelimiter(SQLUtils.getDialectFromObject(table));
if (!script.endsWith(delimiter)) {
script += delimiter;
}
actions.add(
new SQLDatabasePersistActionComment(
table.getDataSource(),
delAction.getScript()));
script));
}
}
......
......@@ -836,10 +836,7 @@ public final class SQLUtils {
continue;
}
String delimiter = sqlDialect.getScriptDelimiter();
if (!delimiter.isEmpty() && Character.isLetterOrDigit(delimiter.charAt(0))) {
delimiter = ' ' + delimiter;
}
String delimiter = getScriptLineDelimiter(sqlDialect);
if (action.isComplex() && redefiner != null) {
script.append(lineSeparator).append(redefiner).append(" ").append(DBEAVER_SCRIPT_DELIMITER).append(lineSeparator);
delimiter = DBEAVER_SCRIPT_DELIMITER;
......@@ -875,6 +872,14 @@ public final class SQLUtils {
return script.toString();
}
public static String getScriptLineDelimiter(SQLDialect sqlDialect) {
String delimiter = sqlDialect.getScriptDelimiter();
if (!delimiter.isEmpty() && Character.isLetterOrDigit(delimiter.charAt(0))) {
delimiter = ' ' + delimiter;
}
return delimiter;
}
public static String[] splitFullIdentifier(final String fullName, char nameSeparator, String[][] quoteStrings) {
return splitFullIdentifier(fullName, String.valueOf(nameSeparator), quoteStrings, false);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册