diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java b/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java index 1c18eccdc1..808a4a0b65 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java @@ -39,6 +39,7 @@ package org.jooq.impl; import static org.jooq.Clause.FIELD; import static org.jooq.Clause.FIELD_VALUE; +// ... import static org.jooq.conf.ParamType.INDEXED; import static org.jooq.conf.ParamType.INLINED; import static org.jooq.conf.ParamType.NAMED; @@ -158,10 +159,15 @@ abstract class AbstractParam extends AbstractField implements Param { return inline; } - final boolean isInline(Context context) { + final boolean isInline(Context ctx) { return isInline() - || (context.paramType() == INLINED) - || (context.paramType() == NAMED_OR_INLINED && StringUtils.isBlank(paramName)); + || (ctx.paramType() == INLINED) + || (ctx.paramType() == NAMED_OR_INLINED && StringUtils.isBlank(paramName)) + + + + + ; } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/Array.java b/jOOQ/src/main/java/org/jooq/impl/Array.java index eb5a60bb1d..74dc0f1211 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Array.java +++ b/jOOQ/src/main/java/org/jooq/impl/Array.java @@ -37,6 +37,7 @@ */ package org.jooq.impl; +// ... // ... // ... import static org.jooq.SQLDialect.POSTGRES; @@ -89,14 +90,17 @@ final class Array extends AbstractField { + case H2: case HSQLDB: case POSTGRES: default: + boolean squareBrackets = true; + ctx.visit(K_ARRAY) - .sql('[') + .sql(squareBrackets ? '[' : '(') .visit(fields) - .sql(']'); + .sql(squareBrackets ? ']' : ')'); if (fields.fields.length == 0 && REQUIRES_CAST.contains(ctx.family())) ctx.sql("::").visit(K_INT).sql("[]"); diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java b/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java index 610159808a..a0cbddb24c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java @@ -125,6 +125,9 @@ final class ArrayDataType extends DefaultDataType { private static String getArrayType(Configuration configuration, String dataType) { switch (configuration.family()) { + + + case HSQLDB: return dataType + " array"; diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 3e1249fd41..2cd9ae255d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -1033,8 +1033,10 @@ public class DefaultBinding implements Binding { // By default, render HSQLDB syntax else { + boolean squareBrackets = true; + ctx.render().visit(K_ARRAY); - ctx.render().sql('['); + ctx.render().sql(squareBrackets ? '[' : '('); for (Object o : value) { ctx.render().sql(separator); @@ -1042,7 +1044,7 @@ public class DefaultBinding implements Binding { separator = ", "; } - ctx.render().sql(']'); + ctx.render().sql(squareBrackets ? ']' : ')'); // [#3214] Some PostgreSQL array type literals need explicit casting // TODO: This seems mutually exclusive with the previous branch. Still needed?