You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Sergey Chernov (Jira)" <ji...@apache.org> on 2025/01/03 10:17:00 UTC
[jira] [Created] (GROOVY-11541) Sql should accept wildcard parameters
Sergey Chernov created GROOVY-11541:
---------------------------------------
Summary: Sql should accept wildcard parameters
Key: GROOVY-11541
URL: https://issues.apache.org/jira/browse/GROOVY-11541
Project: Groovy
Issue Type: Improvement
Components: SQL processing
Affects Versions: 5.0.0-alpha-11
Reporter: Sergey Chernov
`groovy.sql.Sql` declares several methods with SQL statement and parameters like this
```
public boolean execute(String sql, List<Object> params) throws SLQException {
```
This declaration has one major drawback: it's not possible to pass as an argument the List which is not exactly `List<Object>`, e.g. `List.of(1)`.
This List is only iterated, hence using wildcard here is safe. Also changing the type to wildcard as receiving argument should be binary compatible.
Suggested method signature (example; address all such methods of Sql class):
```
public boolean execute(String sql, List<?> params) throws SLQException {
```
Additional notes:
* there are few methods that return `List<Object>`, e.g. `SqlWithParams.getParams()` - in this case the Object generic should be preserved.
* For reference: pretty similar problem solved for cassandra-java-driver https://github.com/apache/cassandra-java-driver/commit/be07a77e4f80435a52b1347a07fd566448d9f4ef
--
This message was sent by Atlassian Jira
(v8.20.10#820010)