diff --git a/vertx-pg-client/src/test/java/io/vertx/tests/pgclient/PreparedStatementTestBase.java b/vertx-pg-client/src/test/java/io/vertx/tests/pgclient/PreparedStatementTestBase.java index a7291df1f..232b15f07 100644 --- a/vertx-pg-client/src/test/java/io/vertx/tests/pgclient/PreparedStatementTestBase.java +++ b/vertx-pg-client/src/test/java/io/vertx/tests/pgclient/PreparedStatementTestBase.java @@ -547,6 +547,14 @@ private void testInferDataType42P18(TestContext ctx, Class type, T value, ctx.assertEquals("HELLO " + suffix2, str); })); })); + PgConnection.connect(vertx, options()).onComplete(ctx.asyncAssertSuccess(conn -> { + conn.begin() + .flatMap(tx -> conn.preparedQuery("SELECT CONCAT('HELLO ', $1)").execute(Tuple.of(value)) + .eventually(() -> conn.close()) + .onComplete(ctx.asyncAssertFailure(failure -> { + ctx.assertTrue(hasSqlstateCode(failure, "42P18")); + }))); + })); } @Test diff --git a/vertx-sql-client-codec/src/main/java/io/vertx/sqlclient/codec/SocketConnectionBase.java b/vertx-sql-client-codec/src/main/java/io/vertx/sqlclient/codec/SocketConnectionBase.java index a0979c79e..8b1b9a973 100644 --- a/vertx-sql-client-codec/src/main/java/io/vertx/sqlclient/codec/SocketConnectionBase.java +++ b/vertx-sql-client-codec/src/main/java/io/vertx/sqlclient/codec/SocketConnectionBase.java @@ -334,7 +334,7 @@ private void fireCommandMessage(ChannelHandlerContext chctx, CommandMessage prepare(String sql, PrepareOptions options) { .compose( cr -> Future.succeededFuture(PreparedStatementBase.create(conn, context, cr, autoCommit())), err -> { - if (conn.isIndeterminatePreparedStatementError(err)) { + if (autoCommit() && conn.isIndeterminatePreparedStatementError(err)) { return Future.succeededFuture(PreparedStatementBase.create(conn, context, options, sql, autoCommit())); } else { return Future.failedFuture(err);