From 1c23e0f96b92ff768df2bd7e92d9b143d40f55d4 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 9 Jan 2018 12:52:43 +0100 Subject: [PATCH] [#6933] Not all databases support the NULL statement (could result from parsing) --- jOOQ/src/main/java/org/jooq/impl/BlockImpl.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java index 0673cacb20..6cabd84bce 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java @@ -41,6 +41,7 @@ package org.jooq.impl; import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.MARIADB; // ... +import static org.jooq.SQLDialect.POSTGRES; import static org.jooq.conf.ParamType.INLINED; import static org.jooq.impl.Keywords.K_AS; import static org.jooq.impl.Keywords.K_ATOMIC; @@ -78,6 +79,7 @@ final class BlockImpl extends AbstractQuery implements Block { */ private static final long serialVersionUID = 6881305779639901498L; private static final EnumSet REQUIRES_EXECUTE_IMMEDIATE_ON_DDL = EnumSet.of(FIREBIRD); + private static final EnumSet SUPPORTS_NULL_STATEMENT = EnumSet.of(POSTGRES); private final Collection statements; @@ -182,7 +184,11 @@ final class BlockImpl extends AbstractQuery implements Block { } } else { - for (Statement query : statements) { + statementLoop: + for (Statement s : statements) { + if (s instanceof NullStatement && !SUPPORTS_NULL_STATEMENT.contains(ctx.family())) + continue statementLoop; + ctx.formatSeparator(); @@ -193,14 +199,14 @@ final class BlockImpl extends AbstractQuery implements Block { - ctx.visit(query); + ctx.visit(s); - if (!(query instanceof Block)) + if (!(s instanceof Block)) ctx.sql(';'); } }