diff --git a/vertx-sql-client-templates/src/main/java/io/vertx/sqlclient/templates/SqlTemplate.java b/vertx-sql-client-templates/src/main/java/io/vertx/sqlclient/templates/SqlTemplate.java index ed050a44b4..6d0e6e7d38 100644 --- a/vertx-sql-client-templates/src/main/java/io/vertx/sqlclient/templates/SqlTemplate.java +++ b/vertx-sql-client-templates/src/main/java/io/vertx/sqlclient/templates/SqlTemplate.java @@ -67,6 +67,12 @@ static SqlTemplate, SqlResult> forUpdate(SqlClient cli return new SqlTemplateImpl<>(client, sqlTemplate, query -> query.collecting(SqlTemplateImpl.NULL_COLLECTOR), sqlTemplate::mapTuple); } + + /** + * @return the computed SQL for this template + */ + String getSql(); + /** * Set a parameters user defined mapping function. * diff --git a/vertx-sql-client-templates/src/main/java/io/vertx/sqlclient/templates/impl/SqlTemplateImpl.java b/vertx-sql-client-templates/src/main/java/io/vertx/sqlclient/templates/impl/SqlTemplateImpl.java index 94459358ac..3ef659dbdb 100644 --- a/vertx-sql-client-templates/src/main/java/io/vertx/sqlclient/templates/impl/SqlTemplateImpl.java +++ b/vertx-sql-client-templates/src/main/java/io/vertx/sqlclient/templates/impl/SqlTemplateImpl.java @@ -2,12 +2,7 @@ import io.vertx.core.Future; import io.vertx.core.json.JsonObject; -import io.vertx.sqlclient.PreparedQuery; -import io.vertx.sqlclient.Row; -import io.vertx.sqlclient.RowSet; -import io.vertx.sqlclient.SqlClient; -import io.vertx.sqlclient.SqlResult; -import io.vertx.sqlclient.Tuple; +import io.vertx.sqlclient.*; import io.vertx.sqlclient.templates.RowMapper; import io.vertx.sqlclient.templates.TupleMapper; @@ -37,6 +32,11 @@ public SqlTemplateImpl(SqlClient client, this.tupleMapper = tupleMapper; } + @Override + public String getSql() { + return sqlTemplate.getSql(); + } + @Override public io.vertx.sqlclient.templates.SqlTemplate mapFrom(TupleMapper mapper) { return new SqlTemplateImpl<>(client, sqlTemplate, queryMapper, params -> mapper.map(sqlTemplate, sqlTemplate.numberOfParams(), params)); diff --git a/vertx-sql-client-templates/src/test/java/io/vertx/tests/sqlclient/templates/PgTemplateTestBase.java b/vertx-sql-client-templates/src/test/java/io/vertx/tests/sqlclient/templates/PgTemplateTestBase.java index b21c847d69..5f2c4b196f 100644 --- a/vertx-sql-client-templates/src/test/java/io/vertx/tests/sqlclient/templates/PgTemplateTestBase.java +++ b/vertx-sql-client-templates/src/test/java/io/vertx/tests/sqlclient/templates/PgTemplateTestBase.java @@ -96,10 +96,12 @@ protected void testGet(TestContext ctx, Function extractor, String column) { Async async = ctx.async(); + String query = "SELECT %s :: %s \"%s\""; SqlTemplate> template = SqlTemplate - .forQuery(connection, "SELECT #{" + paramName + "} :: " + sqlType + " \"" + column + "\"") + .forQuery(connection, String.format(query, "#{" + paramName + "}", sqlType, column)) .mapFrom(paramsMapper) .mapTo(rowMapper); + ctx.assertEquals(String.format(query, "$1", sqlType, column), template.getSql()); template .execute(params) .onComplete(ctx.asyncAssertSuccess(result -> {