@@ -59,12 +59,15 @@ public class SqlClientConnection implements ReactiveConnection {
59
59
60
60
private final Pool pool ;
61
61
private final SqlConnection connection ;
62
+ private final Parameters sqlCleaner ;
62
63
private Transaction transaction ;
63
64
64
- SqlClientConnection (SqlConnection connection , Pool pool , SqlStatementLogger sqlStatementLogger ) {
65
+ SqlClientConnection (SqlConnection connection , Pool pool , SqlStatementLogger sqlStatementLogger ,
66
+ Parameters parameters ) {
65
67
this .pool = pool ;
66
68
this .sqlStatementLogger = sqlStatementLogger ;
67
69
this .connection = connection ;
70
+ this .sqlCleaner = parameters ;
68
71
LOG .tracef ( "Connection created: %s" , connection );
69
72
}
70
73
@@ -86,15 +89,17 @@ public CompletionStage<int[]> update(String sql, List<Object[]> batchParamValues
86
89
87
90
@ Override
88
91
public CompletionStage <Void > update (String sql , Object [] paramValues , boolean allowBatching , Expectation expectation ) {
89
- return update ( sql , paramValues )
90
- .thenAccept ( rowCount -> expectation .verifyOutcome ( rowCount ,-1 , sql ) );
92
+ final String readySql = sqlCleaner .process ( sql );
93
+ return update ( readySql , paramValues )
94
+ .thenAccept ( rowCount -> expectation .verifyOutcome ( rowCount ,-1 , readySql ) );
91
95
}
92
96
93
97
@ Override
94
98
public <T > CompletionStage <T > selectIdentifier (String sql , Object [] paramValues , Class <T > idClass ) {
99
+ final String readySql = sqlCleaner .process ( sql );
95
100
translateNulls ( paramValues );
96
- return preparedQuery ( sql , Tuple .wrap ( paramValues ) )
97
- .handle ( (rows , throwable ) -> convertException ( rows , sql , throwable ) )
101
+ return preparedQuery ( readySql , Tuple .wrap ( paramValues ) )
102
+ .handle ( (rows , throwable ) -> convertException ( rows , readySql , throwable ) )
98
103
.thenApply ( rowSet -> {
99
104
for (Row row : rowSet ) {
100
105
return row .get (idClass , 0 );
@@ -137,9 +142,10 @@ public CompletionStage<Void> execute(String sql) {
137
142
138
143
@ Override
139
144
public CompletionStage <Void > executeUnprepared (String sql ) {
140
- feedback ( sql );
141
- return client ().query ( sql ).execute ().toCompletionStage ()
142
- .handle ( (rows , throwable ) -> convertException ( rows , sql , throwable ) )
145
+ final String readySql = sqlCleaner .process ( sql );
146
+ feedback ( readySql );
147
+ return client ().query ( readySql ).execute ().toCompletionStage ()
148
+ .handle ( (rows , throwable ) -> convertException ( rows , readySql , throwable ) )
143
149
.thenCompose ( CompletionStages ::voidFuture );
144
150
}
145
151
@@ -166,7 +172,7 @@ public CompletionStage<Void> executeOutsideTransaction(String sql) {
166
172
167
173
@ Override
168
174
public CompletionStage <Integer > update (String sql ) {
169
- return preparedQuery ( sql ).thenApply (SqlResult ::rowCount );
175
+ return preparedQuery ( sql ).thenApply ( SqlResult ::rowCount );
170
176
}
171
177
172
178
public CompletionStage <Integer > update (String sql , Tuple parameters ) {
@@ -225,43 +231,49 @@ public <T> CompletionStage<T> insertAndSelectIdentifier(String sql, Tuple parame
225
231
}
226
232
227
233
public CompletionStage <RowSet <Row >> preparedQuery (String sql , Tuple parameters ) {
228
- feedback ( sql );
229
- return client ().preparedQuery ( sql ).execute ( parameters ).toCompletionStage ()
230
- .handle ( (rows , throwable ) -> convertException ( rows , sql , throwable ) );
234
+ final String readySql = sqlCleaner .process ( sql );
235
+ feedback ( readySql );
236
+ return client ().preparedQuery ( readySql ).execute ( parameters ).toCompletionStage ()
237
+ .handle ( (rows , throwable ) -> convertException ( rows , readySql , throwable ) );
231
238
}
232
239
233
240
public CompletionStage <RowSet <Row >> preparedQuery (String sql , Tuple parameters , PrepareOptions options ) {
234
- feedback ( sql );
235
- return client ().preparedQuery ( sql , options ).execute ( parameters ).toCompletionStage ()
236
- .handle ( (rows , throwable ) -> convertException ( rows , sql , throwable ) );
241
+ final String readySql = sqlCleaner .process ( sql );
242
+ feedback ( readySql );
243
+ return client ().preparedQuery ( readySql , options ).execute ( parameters ).toCompletionStage ()
244
+ .handle ( (rows , throwable ) -> convertException ( rows , readySql , throwable ) );
237
245
}
238
246
239
247
public CompletionStage <RowSet <Row >> preparedQueryBatch (String sql , List <Tuple > parameters ) {
240
- feedback ( sql );
241
- return client ().preparedQuery ( sql ).executeBatch ( parameters ).toCompletionStage ()
242
- .handle ( (rows , throwable ) -> convertException ( rows , sql , throwable ) );
248
+ final String readySql = sqlCleaner .process ( sql );
249
+ feedback ( readySql );
250
+ return client ().preparedQuery ( readySql ).executeBatch ( parameters ).toCompletionStage ()
251
+ .handle ( (rows , throwable ) -> convertException ( rows , readySql , throwable ) );
243
252
}
244
253
245
254
public CompletionStage <RowSet <Row >> preparedQuery (String sql ) {
246
- feedback ( sql );
247
- return client ().preparedQuery ( sql ).execute ().toCompletionStage ()
248
- .handle ( (rows , throwable ) -> convertException ( rows , sql , throwable ) );
255
+ final String readySql = sqlCleaner .process ( sql );
256
+ feedback ( readySql );
257
+ return client ().preparedQuery ( readySql ).execute ().toCompletionStage ()
258
+ .handle ( (rows , throwable ) -> convertException ( rows , readySql , throwable ) );
249
259
}
250
260
251
261
public CompletionStage <RowSet <Row >> preparedQueryOutsideTransaction (String sql ) {
252
- feedback ( sql );
253
- return pool .preparedQuery ( sql ).execute ().toCompletionStage ()
254
- .handle ( (rows , throwable ) -> convertException ( rows , sql , throwable ) );
262
+ final String readySql = sqlCleaner .process ( sql );
263
+ feedback ( readySql );
264
+ return pool .preparedQuery ( readySql ).execute ().toCompletionStage ()
265
+ .handle ( (rows , throwable ) -> convertException ( rows , readySql , throwable ) );
255
266
}
256
267
257
268
public CompletionStage <RowSet <Row >> preparedQueryOutsideTransaction (String sql , Tuple parameters ) {
258
- feedback ( sql );
259
- return pool .preparedQuery ( sql ).execute ( parameters ).toCompletionStage ()
260
- .handle ( (rows , throwable ) -> convertException ( rows , sql , throwable ) );
269
+ final String readySql = sqlCleaner .process ( sql );
270
+ feedback ( readySql );
271
+ return pool .preparedQuery ( readySql ).execute ( parameters ).toCompletionStage ()
272
+ .handle ( (rows , throwable ) -> convertException ( rows , readySql , throwable ) );
261
273
}
262
274
263
275
private void feedback (String sql ) {
264
- Objects .requireNonNull (sql , "SQL query cannot be null" );
276
+ Objects .requireNonNull ( sql , "SQL query cannot be null" );
265
277
// DDL already gets formatted by the client, so don't reformat it
266
278
FormatStyle formatStyle =
267
279
sqlStatementLogger .isFormat () && !sql .contains ( System .lineSeparator () )
0 commit comments