提交 915d8610 编写于 作者: S Serge Rider

#7760 SQL dialect additions

上级 6af80ad2
......@@ -449,6 +449,18 @@ public abstract class AbstractSQLDialect implements SQLDialect {
return isTransactionModifyingKeyword(firstKeyword);
}
@Nullable
@Override
public String[] getTransactionCommitKeywords() {
return null;
}
@Nullable
@Override
public String[] getTransactionRollbackKeywords() {
return null;
}
protected boolean isTransactionModifyingKeyword(String firstKeyword) {
if (getKeywordType(firstKeyword) != DBPKeywordType.KEYWORD) {
return false;
......@@ -472,7 +484,7 @@ public abstract class AbstractSQLDialect implements SQLDialect {
return false;
}
private boolean containsKeyword(String[] keywords, String keyword) {
private static boolean containsKeyword(String[] keywords, String keyword) {
if (keywords == null) {
return false;
}
......
......@@ -68,6 +68,9 @@ public class BasicSQLDialect extends AbstractSQLDialect implements RelationalSQL
public static final String[][] DEFAULT_IDENTIFIER_QUOTES = {{"\"", "\""}};
public static final String[][] DEFAULT_STRING_QUOTES = {{"'", "'"}};
private static final String[] COMMIT_KEYWORDS = { SQLConstants.KEYWORD_COMMIT };
private static final String[] ROLLBACK_KEYWORDS = { SQLConstants.KEYWORD_ROLLBACK };
protected BasicSQLDialect() {
loadStandardKeywords();
}
......@@ -276,6 +279,18 @@ public class BasicSQLDialect extends AbstractSQLDialect implements RelationalSQL
return false;
}
@Nullable
@Override
public String[] getTransactionCommitKeywords() {
return COMMIT_KEYWORDS;
}
@Nullable
@Override
public String[] getTransactionRollbackKeywords() {
return ROLLBACK_KEYWORDS;
}
@Override
protected boolean isTransactionModifyingKeyword(String firstKeyword) {
// Handle "DO" separately
......
......@@ -51,6 +51,12 @@ public class SQLConstants {
public static final String KEYWORD_NULL = "NULL";
public static final String KEYWORD_IN = "IN";
public static final String KEYWORD_FUNCTION = "FUNCTION";
public static final String KEYWORD_PROCEDURE = "PROCEDURE";
public static final String KEYWORD_COMMIT = "COMMIT";
public static final String KEYWORD_ROLLBACK = "ROLLBACK";
public static final String[] TABLE_KEYWORDS = {
KEYWORD_FROM,
KEYWORD_UPDATE,
......@@ -80,8 +86,6 @@ public class SQLConstants {
"DROP",
};
public static final String KEYWORD_FUNCTION = "FUNCTION";
public static final String KEYWORD_PROCEDURE = "PROCEDURE";
public static final String[] SQL2003_RESERVED_KEYWORDS = {
"ALL",
"ALLOCATE",
......@@ -118,7 +122,7 @@ public class SQLConstants {
"COLLATE",
"COLLECT",
"COLUMN",
"COMMIT",
KEYWORD_COMMIT,
"CONDITION",
"CONNECT",
"CONSTRAINT",
......@@ -260,7 +264,7 @@ public class SQLConstants {
"RETURNS",
"REVOKE",
"RIGHT",
"ROLLBACK",
KEYWORD_ROLLBACK,
"ROLLUP",
"ROW",
"ROW_NUMBER",
......
......@@ -189,6 +189,10 @@ public interface SQLDialect {
@Nullable
String getScriptDelimiterRedefiner();
/**
* SQL block statements (BEGIN/END).
* Null if not supported
*/
@Nullable
String[][] getBlockBoundStrings();
......@@ -343,6 +347,12 @@ public interface SQLDialect {
*/
boolean isTransactionModifyingQuery(String queryString);
@Nullable
String[] getTransactionCommitKeywords();
@Nullable
String[] getTransactionRollbackKeywords();
@Nullable
String getColumnTypeModifiers(DBPDataSource dataSource, @NotNull DBSTypedObject column, @NotNull String typeName, @NotNull DBPDataKind dataKind);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册