This is an automated email from the ASF dual-hosted git repository. amashenkov pushed a commit to branch ignite-26156 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 7101de5c2eeda4abbcfdcbadd5975ec3b8e8ac34 Author: amashenkov <amashen...@apache.org> AuthorDate: Tue Sep 2 11:07:02 2025 +0300 Fix SqlCommand --- .../internal/cli/commands/sql/SqlCommand.java | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/SqlCommand.java b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/SqlCommand.java index 3cb6f3d1b6f..c393e85ec2f 100644 --- a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/SqlCommand.java +++ b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/SqlCommand.java @@ -56,14 +56,19 @@ import picocli.CommandLine.Parameters; description = "Executes SQL query" ) public class SqlCommand extends BaseCommand implements Callable<Integer> { - @Option(names = JDBC_URL_OPTION, required = true, descriptionKey = JDBC_URL_KEY, description = JDBC_URL_OPTION_DESC) - private String jdbc; + @ArgGroup(validate = false, exclusive = false) + private JdbcOption jdbcOption; - @Option(names = PLAIN_OPTION, description = PLAIN_OPTION_DESC) - private boolean plain; + private static class JdbcOption { + @Option(names = JDBC_URL_OPTION, required = true, descriptionKey = JDBC_URL_KEY, description = JDBC_URL_OPTION_DESC) + private String jdbc; - @ArgGroup(multiplicity = "1") - private ExecOptions execOptions; + @Option(names = PLAIN_OPTION, description = PLAIN_OPTION_DESC) + private boolean plain; + + @ArgGroup(multiplicity = "1") + private ExecOptions execOptions; + } private static class ExecOptions { @Parameters(index = "0", description = "SQL query to execute") @@ -86,12 +91,13 @@ public class SqlCommand extends BaseCommand implements Callable<Integer> { */ @Override public Integer call() { - try (SqlManager sqlManager = new SqlManager(jdbc)) { + try (SqlManager sqlManager = new SqlManager(jdbcOption.jdbc)) { + ExecOptions execOptions = jdbcOption.execOptions; String executeCommand = execOptions.file != null ? extract(execOptions.file) : execOptions.command; return runPipeline(CallExecutionPipeline.builder(new SqlQueryCall(sqlManager)) .inputProvider(() -> new StringCallInput(executeCommand)) .exceptionHandler(SqlExceptionHandler.INSTANCE) - .decorator(new SqlQueryResultDecorator(plain)) + .decorator(new SqlQueryResultDecorator(jdbcOption.plain)) ); } catch (SQLException e) { ExceptionWriter exceptionWriter = ExceptionWriter.fromPrintWriter(spec.commandLine().getErr());