diff --git a/plugins/org.jkiss.dbeaver.ext.hana/src/org/jkiss/dbeaver/ext/hana/model/HANASQLDialect.java b/plugins/org.jkiss.dbeaver.ext.hana/src/org/jkiss/dbeaver/ext/hana/model/HANASQLDialect.java index 91c45fe902da213a107db71e2367f21b5cdb50bc..171219582f23a0859315da962f0060590bf90844 100644 --- a/plugins/org.jkiss.dbeaver.ext.hana/src/org/jkiss/dbeaver/ext/hana/model/HANASQLDialect.java +++ b/plugins/org.jkiss.dbeaver.ext.hana/src/org/jkiss/dbeaver/ext/hana/model/HANASQLDialect.java @@ -117,7 +117,7 @@ public class HANASQLDialect extends GenericSQLDialect implements TPRuleProvider @Override public void extendRules(@Nullable DBPDataSourceContainer dataSource, @NotNull List rules, @NotNull RulePosition position) { - if (position == RulePosition.INITIAL) { + if (position == RulePosition.FINAL) { rules.add(new SQLVariableRule(this)); } } diff --git a/plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerDialect.java b/plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerDialect.java index 45c3e1051f0c6d9315a20102938c997d85f07123..07f1957bd99b544f92246b81f2e5f060785c525f 100644 --- a/plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerDialect.java +++ b/plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerDialect.java @@ -315,7 +315,7 @@ public class SQLServerDialect extends JDBCSQLDialect implements TPRuleProvider { @Override public void extendRules(@Nullable DBPDataSourceContainer dataSource, @NotNull List rules, @NotNull RulePosition position) { - if (position == RulePosition.INITIAL) { + if (position == RulePosition.FINAL) { rules.add(new SQLVariableRule(this)); } if (position == RulePosition.KEYWORDS) { diff --git a/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/parser/SQLRuleManager.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/parser/SQLRuleManager.java index ad3e40ca3a597b9c0242e9034e186c3e85cb5612..9c091aa9089ed61468c3cfe046016dfdcc3f8b3a 100644 --- a/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/parser/SQLRuleManager.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/parser/SQLRuleManager.java @@ -244,6 +244,10 @@ public class SQLRuleManager { } } + if (ruleProvider != null) { + ruleProvider.extendRules(dataSourceContainer, rules, TPRuleProvider.RulePosition.FINAL); + } + allRules = rules.toArray(new TPRule[0]); } diff --git a/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/text/parser/TPRuleProvider.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/text/parser/TPRuleProvider.java index 5a4cee14cc32f9680f12743e54ad91ec979a04f5..3f605def670783f5e58385b21d53e35a20ba4331 100644 --- a/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/text/parser/TPRuleProvider.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/text/parser/TPRuleProvider.java @@ -31,6 +31,7 @@ public interface TPRuleProvider { enum RulePosition { PARTITION, INITIAL, + FINAL, CONTROL, QUOTES, KEYWORDS