[jOOQ/jOOQ#6956] Support MARIADB, MYSQL, SQL Server

- Added Support annotations
- Test workarounds for missing REFERENCING clause support
- Support parsing SQL Server syntax
- Added support for FOR EACH STATEMENT
This commit is contained in:
Lukas Eder 2021-01-18 21:20:31 +01:00
parent 19913c0521
commit 27e20ad1e4
4 changed files with 33 additions and 12 deletions

View File

@ -71,6 +71,13 @@ package org.jooq;

View File

@ -486,6 +486,27 @@ package org.jooq.impl;

View File

@ -364,6 +364,7 @@ final class Keywords {
static final Keyword K_SQLSTATE = keyword("sqlstate");
static final Keyword K_START_AT = keyword("start at");
static final Keyword K_START_WITH = keyword("start with");
static final Keyword K_STATEMENT = keyword("statement");
static final Keyword K_STORING = keyword("storing");
static final Keyword K_SWITCH = keyword("switch");
static final Keyword K_SYMMETRIC = keyword("symmetric");

View File

@ -2476,9 +2476,7 @@ final class ParserContext {
case 'G':
if (parseKeywordIf("GENERATOR"))
return parseCreateSequence();
else if (parseKeywordIf("GLOBAL TEMP TABLE"))
return parseCreateTable(true);
else if (parseKeywordIf("GLOBAL TEMPORARY TABLE"))
else if (parseKeywordIf("GLOBAL TEMP TABLE", "GLOBAL TEMPORARY TABLE"))
return parseCreateTable(true);
break;
@ -2490,16 +2488,12 @@ final class ParserContext {
break;
case 'O':
if (parseKeywordIf("OR REPLACE TRIGGER") && requireProEdition())
if (parseKeywordIf("OR REPLACE TRIGGER", "OR ALTER TRIGGER") && requireProEdition())
;
else if (parseKeywordIf("OR REPLACE VIEW"))
return parseCreateView(true);
else if (parseKeywordIf("OR REPLACE FORCE VIEW"))
return parseCreateView(true);
else if (parseKeywordIf("OR ALTER VIEW"))
else if (parseKeywordIf("OR REPLACE VIEW", "OR REPLACE FORCE VIEW", "OR ALTER VIEW"))
return parseCreateView(true);
else if (parseKeywordIf("OR REPLACE FUNCTION"))
throw notImplemented("CREATE FUNCTION", "https://github.com/jOOQ/jOOQ/issues/9190");
@ -2539,9 +2533,7 @@ final class ParserContext {
case 'T':
if (parseKeywordIf("TABLE"))
return parseCreateTable(false);
else if (parseKeywordIf("TEMP TABLE"))
return parseCreateTable(true);
else if (parseKeywordIf("TEMPORARY TABLE"))
else if (parseKeywordIf("TEMP TABLE", "TEMPORARY TABLE"))
return parseCreateTable(true);
else if (parseKeywordIf("TRIGGER") && requireProEdition())