[jOOQ/jOOQ#11333] Add parser support for hash style comments (#) in MariaDB, MySQL
This commit is contained in:
parent
b35d11dfe3
commit
7b3dbc645e
@ -48,6 +48,10 @@ import static org.jooq.JoinType.JOIN;
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.MARIADB;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.MYSQL;
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
@ -748,6 +752,7 @@ final class ParserContext {
|
||||
|
||||
|
||||
|
||||
static final Set<SQLDialect> SUPPORTS_HASH_COMMENT_SYNTAX = SQLDialect.supportedBy(MARIADB, MYSQL);
|
||||
|
||||
final Queries parse() {
|
||||
List<Query> result = new ArrayList<>();
|
||||
@ -12397,8 +12402,14 @@ final class ParserContext {
|
||||
break loop;
|
||||
|
||||
case '-':
|
||||
if (i + 1 < sql.length && sql[i + 1] == '-') {
|
||||
i = i + 2;
|
||||
case '#':
|
||||
if (sql[i] == '-' && i + 1 < sql.length && sql[i + 1] == '-' ||
|
||||
sql[i] == '#' && SUPPORTS_HASH_COMMENT_SYNTAX.contains(dialect())) {
|
||||
|
||||
if (sql[i] == '-')
|
||||
i = i + 2;
|
||||
else
|
||||
i++;
|
||||
|
||||
while (i < sql.length) {
|
||||
if (!(ignoreComment = peekIgnoreComment(ignoreComment, ignoreCommentStart, ignoreCommentStop, checkIgnoreComment, i))) {
|
||||
|
||||
@ -152,6 +152,7 @@ import static org.jooq.impl.Keywords.K_START_WITH;
|
||||
import static org.jooq.impl.Keywords.K_THEN;
|
||||
import static org.jooq.impl.Keywords.K_THROW;
|
||||
import static org.jooq.impl.Keywords.K_WHEN;
|
||||
import static org.jooq.impl.ParserContext.SUPPORTS_HASH_COMMENT_SYNTAX;
|
||||
import static org.jooq.impl.SQLDataType.BLOB;
|
||||
import static org.jooq.impl.SQLDataType.CLOB;
|
||||
import static org.jooq.impl.SQLDataType.JSON;
|
||||
@ -818,7 +819,6 @@ final class Tools {
|
||||
private static final Set<SQLDialect> NO_SUPPORT_CAST_TYPE_IN_DDL = SQLDialect.supportedBy(MARIADB, MYSQL);
|
||||
private static final Set<SQLDialect> SUPPORT_NON_BIND_VARIABLE_SUFFIXES = SQLDialect.supportedBy(POSTGRES);
|
||||
private static final Set<SQLDialect> DEFAULT_BEFORE_NULL = SQLDialect.supportedBy(FIREBIRD, HSQLDB);
|
||||
private static final Set<SQLDialect> SUPPORT_MYSQL_SYNTAX = SQLDialect.supportedBy(MARIADB, MYSQL);
|
||||
static final Set<SQLDialect> NO_SUPPORT_TIMESTAMP_PRECISION = SQLDialect.supportedBy(DERBY);
|
||||
private static final Set<SQLDialect> DEFAULT_TIMESTAMP_NOT_NULL = SQLDialect.supportedBy(MARIADB);
|
||||
|
||||
@ -2325,7 +2325,7 @@ final class Tools {
|
||||
if (render == null) render = new DefaultRenderContext(bind.configuration());
|
||||
|
||||
SQLDialect family = render.family();
|
||||
boolean mysql = SUPPORT_MYSQL_SYNTAX.contains(render.dialect());
|
||||
boolean mysql = SUPPORTS_HASH_COMMENT_SYNTAX.contains(render.dialect());
|
||||
char[][][] quotes = QUOTES.get(family);
|
||||
|
||||
// [#3630] Depending on this setting, we need to consider backslashes as escape characters within string literals.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user