diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java index 63d9cfe9b8..d1e3f8328a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java @@ -341,7 +341,7 @@ abstract class AbstractQuery extends AbstractAttachableQueryPa listener.bindStart(ctx); if (rendered.bindValues != null) - using(c).bindContext(ctx.statement()).visit(rendered.bindValues); + new DefaultBindContext(c, ctx, ctx.statement()).visit(rendered.bindValues); listener.bindEnd(ctx); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index e279b31ae6..947a3bd0b5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -574,7 +574,7 @@ implements ctx.statement().setQueryTimeout(t); listener.bindStart(ctx); - using(configuration).bindContext(ctx.statement()).visit(this); + new DefaultBindContext(configuration, ctx, ctx.statement()).visit(this); registerOutParameters(ctx); listener.bindEnd(ctx); diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBindContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBindContext.java index d24ed35640..b7c2838b43 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBindContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBindContext.java @@ -62,9 +62,14 @@ final class DefaultBindContext extends AbstractBindContext { int nextIndex = nextIndex(); try { - ((Field) field).getBinding().set( - new DefaultBindingSetStatementContext<>(new SimpleExecuteContext(configuration(), data()), stmt, nextIndex, value) - ); + ((Field) field).getBinding().set(new DefaultBindingSetStatementContext<>( + executeContext() != null + ? executeContext() + : new SimpleExecuteContext(configuration(), data()), + stmt, + nextIndex, + value + )); } // [#14696] Maintain SQLState and ErrorCode if the exception is from the driver diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 664f827f69..5f7a3cfa13 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -282,6 +282,7 @@ import org.jooq.exception.MappingException; import org.jooq.exception.SQLDialectNotSupportedException; import org.jooq.impl.Cast.CastNative; import org.jooq.impl.R2DBC.R2DBCPreparedStatement; +import org.jooq.impl.Tools.ExtendedDataKey; import org.jooq.tools.JooqLogger; import org.jooq.tools.Longs; import org.jooq.tools.StringUtils; @@ -4529,6 +4530,17 @@ public class DefaultBinding implements Binding { @Override final void set0(BindingSetStatementContext ctx, String value) throws SQLException { + + + + + + + + + + + ctx.statement().setString(ctx.index(), value); } diff --git a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java index 8d11622525..5ce75a9f8a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java @@ -1313,6 +1313,12 @@ implements + + + + + + if (with != null) ctx.visit(with); diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 030a210178..9f51d13b65 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -935,6 +935,12 @@ final class Tools { + + + + + +