HHH-16430 Avoid AnsiSqlKeywords to retain all keywords as static constants
This commit is contained in:
parent
ca3e69a4f6
commit
845e9770d5
|
@ -609,7 +609,8 @@ public abstract class Dialect implements ConversionContext, TypeContributor, Fun
|
||||||
* @see AnsiSqlKeywords
|
* @see AnsiSqlKeywords
|
||||||
*/
|
*/
|
||||||
protected void registerDefaultKeywords() {
|
protected void registerDefaultKeywords() {
|
||||||
for ( String keyword : AnsiSqlKeywords.INSTANCE.sql2003() ) {
|
AnsiSqlKeywords keywords = new AnsiSqlKeywords();
|
||||||
|
for ( String keyword : keywords.sql2003() ) {
|
||||||
registerKeyword( keyword );
|
registerKeyword( keyword );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,14 +15,9 @@ import java.util.Set;
|
||||||
*/
|
*/
|
||||||
public final class AnsiSqlKeywords {
|
public final class AnsiSqlKeywords {
|
||||||
|
|
||||||
/**
|
|
||||||
* Singleton access
|
|
||||||
*/
|
|
||||||
public static final AnsiSqlKeywords INSTANCE = new AnsiSqlKeywords();
|
|
||||||
|
|
||||||
private final Set<String> keywordsSql2003;
|
private final Set<String> keywordsSql2003;
|
||||||
|
|
||||||
private AnsiSqlKeywords() {
|
public AnsiSqlKeywords() {
|
||||||
this.keywordsSql2003 = Set.of(
|
this.keywordsSql2003 = Set.of(
|
||||||
"add",
|
"add",
|
||||||
"all",
|
"all",
|
||||||
|
|
|
@ -11,6 +11,7 @@ import org.hibernate.internal.util.StringHelper;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
|
@ -21,10 +22,10 @@ import java.util.StringTokenizer;
|
||||||
*/
|
*/
|
||||||
public final class HighlightingFormatter implements Formatter {
|
public final class HighlightingFormatter implements Formatter {
|
||||||
|
|
||||||
private static final Set<String> KEYWORDS = new HashSet<>( AnsiSqlKeywords.INSTANCE.sql2003() );
|
private static final Set<String> KEYWORDS_LOWERCASED = new HashSet<>( new AnsiSqlKeywords().sql2003() );
|
||||||
static {
|
static {
|
||||||
// additional keywords not reserved by ANSI SQL 2003
|
// additional keywords not reserved by ANSI SQL 2003
|
||||||
KEYWORDS.addAll( Arrays.asList( "KEY", "SEQUENCE", "CASCADE", "INCREMENT" ) );
|
KEYWORDS_LOWERCASED.addAll( Arrays.asList( "key", "sequence", "cascade", "increment" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Formatter INSTANCE =
|
public static final Formatter INSTANCE =
|
||||||
|
@ -92,7 +93,7 @@ public final class HighlightingFormatter implements Formatter {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ( KEYWORDS.contains( token.toUpperCase() ) ) {
|
if ( KEYWORDS_LOWERCASED.contains( token.toLowerCase( Locale.ROOT ) ) ) {
|
||||||
result.append( keywordEscape ).append( token ).append( normalEscape );
|
result.append( keywordEscape ).append( token ).append( normalEscape );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class JdbcMocks {
|
||||||
private boolean supportsBatchUpdates = true;
|
private boolean supportsBatchUpdates = true;
|
||||||
private boolean dataDefinitionIgnoredInTransactions = false;
|
private boolean dataDefinitionIgnoredInTransactions = false;
|
||||||
private boolean dataDefinitionCausesTransactionCommit = false;
|
private boolean dataDefinitionCausesTransactionCommit = false;
|
||||||
private String sqlKeywords = String.join( ",", AnsiSqlKeywords.INSTANCE.sql2003() );
|
private String sqlKeywords = String.join( ",", new AnsiSqlKeywords().sql2003() );
|
||||||
private int sqlStateType = DatabaseMetaData.sqlStateXOpen;
|
private int sqlStateType = DatabaseMetaData.sqlStateXOpen;
|
||||||
private boolean locatorsUpdateCopy = false;
|
private boolean locatorsUpdateCopy = false;
|
||||||
private boolean storesLowerCaseIdentifiers = true;
|
private boolean storesLowerCaseIdentifiers = true;
|
||||||
|
|
Loading…
Reference in New Issue