MySQL parser allow from/to keywords to be identifiers
This commit is contained in:
@@ -2846,6 +2846,7 @@ keywordsCanBeId
|
||||
| FLUSH
|
||||
| FOLLOWS
|
||||
| FOUND
|
||||
| FROM
|
||||
| FULL
|
||||
| FUNCTION
|
||||
| GENERAL
|
||||
@@ -3095,6 +3096,7 @@ keywordsCanBeId
|
||||
| TEMPORARY
|
||||
| TEMPTABLE
|
||||
| THAN
|
||||
| TO
|
||||
| TP_CONNECTION_ADMIN
|
||||
| TRADITIONAL
|
||||
| TRANSACTION
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -109,4 +109,36 @@ public class MySqlSemanticTokensTest {
|
||||
assertThat(tokens.size()).isEqualTo(20);
|
||||
}
|
||||
|
||||
@Test
|
||||
void fromIsIdentifierInQuery() {
|
||||
List<SemanticTokenData> tokens = provider.computeTokens("SELECT inv FROM service WHERE inv.issued_date >= :from AND inv.issued_date <= :to GROUP BY inv.id");
|
||||
assertThat(tokens.size()).isEqualTo(25);
|
||||
|
||||
assertThat(tokens.get(0)).isEqualTo(new SemanticTokenData(0, 6, "keyword", new String[0])); // SELECR
|
||||
assertThat(tokens.get(1)).isEqualTo(new SemanticTokenData(7, 10, "variable", new String[0])); // inv
|
||||
assertThat(tokens.get(2)).isEqualTo(new SemanticTokenData(11, 15, "keyword", new String[0])); // FROM
|
||||
assertThat(tokens.get(3)).isEqualTo(new SemanticTokenData(16, 23, "variable", new String[0])); // service
|
||||
assertThat(tokens.get(4)).isEqualTo(new SemanticTokenData(24, 29, "keyword", new String[0])); // WHERE
|
||||
assertThat(tokens.get(5)).isEqualTo(new SemanticTokenData(30, 33, "variable", new String[0])); // inv
|
||||
assertThat(tokens.get(6)).isEqualTo(new SemanticTokenData(33, 34, "operator", new String[0])); // .
|
||||
assertThat(tokens.get(7)).isEqualTo(new SemanticTokenData(34, 45, "property", new String[0])); // issued_date
|
||||
assertThat(tokens.get(8)).isEqualTo(new SemanticTokenData(46, 47, "operator", new String[0])); // >
|
||||
assertThat(tokens.get(9)).isEqualTo(new SemanticTokenData(47, 48, "operator", new String[0])); // =
|
||||
assertThat(tokens.get(10)).isEqualTo(new SemanticTokenData(49, 50, "operator", new String[0])); // :
|
||||
assertThat(tokens.get(11)).isEqualTo(new SemanticTokenData(50, 54, "parameter", new String[0])); // from
|
||||
assertThat(tokens.get(12)).isEqualTo(new SemanticTokenData(55, 58, "keyword", new String[0])); // AND
|
||||
assertThat(tokens.get(13)).isEqualTo(new SemanticTokenData(59, 62, "variable", new String[0])); // inv
|
||||
assertThat(tokens.get(14)).isEqualTo(new SemanticTokenData(62, 63, "operator", new String[0])); // .
|
||||
assertThat(tokens.get(15)).isEqualTo(new SemanticTokenData(63, 74, "property", new String[0])); // issued_date
|
||||
assertThat(tokens.get(16)).isEqualTo(new SemanticTokenData(75, 76, "operator", new String[0])); // <
|
||||
assertThat(tokens.get(17)).isEqualTo(new SemanticTokenData(76, 77, "operator", new String[0])); // =
|
||||
assertThat(tokens.get(18)).isEqualTo(new SemanticTokenData(78, 79, "operator", new String[0])); // :
|
||||
assertThat(tokens.get(19)).isEqualTo(new SemanticTokenData(79, 81, "parameter", new String[0])); // to
|
||||
assertThat(tokens.get(20)).isEqualTo(new SemanticTokenData(82, 87, "keyword", new String[0])); // GROUP
|
||||
assertThat(tokens.get(21)).isEqualTo(new SemanticTokenData(88, 90, "keyword", new String[0])); // BY
|
||||
assertThat(tokens.get(22)).isEqualTo(new SemanticTokenData(91, 94, "variable", new String[0])); // inv
|
||||
assertThat(tokens.get(23)).isEqualTo(new SemanticTokenData(94, 95, "operator", new String[0])); // .
|
||||
assertThat(tokens.get(24)).isEqualTo(new SemanticTokenData(95, 97, "property", new String[0])); // id
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user