[jOOQ/jOOQ#9925] Added Oracle support

This commit is contained in:
Lukas Eder 2020-03-25 14:20:49 +01:00
parent 9ec5cc07bf
commit 2dac69b806
8 changed files with 51 additions and 1 deletions

View File

@ -37,6 +37,7 @@
*/
package org.jooq;
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;

View File

@ -37,6 +37,7 @@
*/
package org.jooq;
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;
@ -75,4 +76,21 @@ public interface XMLQueryPassingStep {
@Support({ POSTGRES })
Field<XML> passingByRef(Field<XML> xml);
}

View File

@ -37,6 +37,7 @@
*/
package org.jooq;
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;

View File

@ -37,6 +37,7 @@
*/
package org.jooq;
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;

View File

@ -37,6 +37,7 @@
*/
package org.jooq;
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;

View File

@ -37,6 +37,7 @@
*/
package org.jooq;
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;

View File

@ -6899,10 +6899,17 @@ final class ParserImpl implements Parser {
Field<String> xpath = (Field<String>) parseField(ctx);
XMLPassingMechanism m = parseXMLPassingMechanism(ctx);
Field<XML> xml = (Field<XML>) parseField(ctx);
parseKeywordIf(ctx, "RETURNING CONTENT");
parse(ctx, ')');
if (m == BY_REF)
return xmlquery(xpath).passingByRef(xml);
else
return xmlquery(xpath).passing(xml);
}

View File

@ -40,9 +40,12 @@ package org.jooq.impl;
import static org.jooq.impl.DSL.select;
import static org.jooq.impl.DSL.unnest;
import static org.jooq.impl.DSL.xmlagg;
import static org.jooq.impl.Keywords.K_CONTENT;
import static org.jooq.impl.Keywords.K_RETURNING;
import static org.jooq.impl.Names.N_XMLQUERY;
import static org.jooq.impl.SQLDataType.XML;
import static org.jooq.impl.XMLPassingMechanism.BY_REF;
import static org.jooq.impl.XMLPassingMechanism.BY_VALUE;
import static org.jooq.impl.XMLTable.acceptPassing;
import static org.jooq.impl.XMLTable.acceptXPath;
@ -99,6 +102,20 @@ final class XMLQuery extends AbstractField<XML> implements XMLQueryPassingStep {
return new XMLQuery(xpath, xml, BY_REF);
}
// -------------------------------------------------------------------------
// XXX: QueryPart API
// -------------------------------------------------------------------------
@ -126,12 +143,15 @@ final class XMLQuery extends AbstractField<XML> implements XMLQueryPassingStep {
acceptXPath(ctx, xpath);
acceptPassing(ctx, passing, passingMechanism);
ctx.formatIndentEnd()
.formatNewLine()
.sql(')');
break;
}
}
}