diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/RenderAndBindTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/RenderAndBindTests.java index 1c34f7bde3..0601356ee0 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/RenderAndBindTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/RenderAndBindTests.java @@ -530,4 +530,25 @@ extends BaseTest { */ RenderContext sql(String sql); + /** + * Append some SQL to the context's contained {@link StringBuilder}. + *

+ * Set literal = true to indicate that the + * RenderContext shall not format the argument SQL. + */ + RenderContext sql(String sql, boolean literal); + /** * Append some SQL to the context's contained {@link StringBuilder}. */ diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java index b936b788d2..13cf27d349 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java @@ -146,14 +146,20 @@ class DefaultRenderContext extends AbstractContext implements Ren @Override public final RenderContext sql(String s) { - if (s != null && cachedRenderFormatted) { - sql.append(NEWLINE.matcher(s).replaceAll("$0" + indentation())); + return sql(s, s == null || !cachedRenderFormatted); + } + + @Override + public final RenderContext sql(String s, boolean literal) { + if (literal) { + sql.append(s); } else { - sql.append(s); + sql.append(NEWLINE.matcher(s).replaceAll("$0" + indentation())); } return this; + } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/Val.java b/jOOQ/src/main/java/org/jooq/impl/Val.java index f065f53818..f2233d7782 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Val.java +++ b/jOOQ/src/main/java/org/jooq/impl/Val.java @@ -486,7 +486,7 @@ class Val extends AbstractParam { } } else if (ArrayRecord.class.isAssignableFrom(type)) { - context.sql(val.toString()); + context.sql(val.toString(), true); } else if (EnumType.class.isAssignableFrom(type)) { toSQL(context, ((EnumType) val).getLiteral()); @@ -501,7 +501,7 @@ class Val extends AbstractParam { // - UUID else { context.sql("'") - .sql(escape(val)) + .sql(escape(val), true) .sql("'"); } }