提交 2d44a35b 编写于 作者: S serge-rider

#1114 PG: disable BLOCK/END in regular SQL.

Extend block toggles support ($[\w]*$).


Former-commit-id: fcf65d57
上级 681b0a56
......@@ -232,9 +232,17 @@ public class SQLRuleManager extends RuleBasedScanner {
final String blockToggleString = dialect.getBlockToggleString();
if (!CommonUtils.isEmpty(blockToggleString)) {
WordRule blockToggleRule = new WordRule(getWordOrSymbolDetector(blockToggleString), Token.UNDEFINED, true);
blockToggleRule.addWord(blockToggleString, blockToggleToken);
rules.add(blockToggleRule);
int divPos = blockToggleString.indexOf(SQLConstants.KEYWORD_PATTERN_CHARS);
if (divPos != -1) {
String prefix = blockToggleString.substring(0, divPos);
String postfix = blockToggleString.substring(divPos + SQLConstants.KEYWORD_PATTERN_CHARS.length());
WordPatternRule blockToggleRule = new WordPatternRule(new SQLWordDetector(), prefix, postfix, blockToggleToken);
rules.add(blockToggleRule);
} else {
WordRule blockToggleRule = new WordRule(getWordOrSymbolDetector(blockToggleString), Token.UNDEFINED, true);
blockToggleRule.addWord(blockToggleString, blockToggleToken);
rules.add(blockToggleRule);
}
}
// Parameter rule
......
......@@ -26,6 +26,7 @@ import org.jkiss.dbeaver.model.data.DBDBinaryFormatter;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCDatabaseMetaData;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCSQLDialect;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import java.util.Arrays;
import java.util.Collections;
......@@ -61,7 +62,12 @@ class PostgreDialect extends JDBCSQLDialect {
@Nullable
@Override
public String getBlockToggleString() {
return "$$";
return "$" + SQLConstants.KEYWORD_PATTERN_CHARS + "$";
}
@Override
public String[][] getBlockBoundStrings() {
return null;
}
@Override
......
......@@ -624,4 +624,5 @@ public class SQLConstants {
public static final char DEFAULT_PARAMETER_MARK = '?';
public static final char DEFAULT_PARAMETER_PREFIX = ':';
public static final String DEFAULT_IDENTIFIER_QUOTE = "\"";
public static final String KEYWORD_PATTERN_CHARS = "\\*\\";
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册