This is an automated email from the ASF dual-hosted git repository.

apkhmv pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 9bdb01c26f IGNITE-23136 Duplicate commands in sql help (#4324)
9bdb01c26f is described below

commit 9bdb01c26fc5da354ed993b16e2faeb93cc82881
Author: Vadim Pakhnushev <[email protected]>
AuthorDate: Wed Sep 4 16:40:16 2024 +0300

    IGNITE-23136 Duplicate commands in sql help (#4324)
---
 .../cli/commands/sql/help/SqlHelpCommand.java      | 36 +++++++++++++---------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/help/SqlHelpCommand.java
 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/help/SqlHelpCommand.java
index 157392b8d3..03f045d461 100644
--- 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/help/SqlHelpCommand.java
+++ 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/help/SqlHelpCommand.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.cli.commands.sql.help;
 
+import static java.lang.System.lineSeparator;
 import static 
org.apache.ignite.internal.cli.commands.CommandConstants.ABBREVIATE_SYNOPSIS;
 import static 
org.apache.ignite.internal.cli.commands.CommandConstants.COMMAND_LIST_HEADING;
 import static 
org.apache.ignite.internal.cli.commands.CommandConstants.DESCRIPTION_HEADING;
@@ -29,10 +30,13 @@ import static 
org.apache.ignite.internal.cli.commands.CommandConstants.SYNOPSIS_
 import static 
org.apache.ignite.internal.cli.commands.CommandConstants.USAGE_HELP_AUTO_WIDTH;
 
 import java.io.PrintWriter;
-import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
-import java.util.StringJoiner;
+import java.util.Set;
+import java.util.stream.Collectors;
 import org.apache.ignite.internal.cli.core.exception.IgniteCliException;
 import picocli.CommandLine;
 import picocli.CommandLine.Command;
@@ -76,7 +80,7 @@ public final class SqlHelpCommand implements 
IHelpCommandInitializable2, Runnabl
     @Override
     public void run() {
         if (parameters != null) {
-            String command = String.join(" ", this.parameters);
+            String command = String.join(" ", parameters);
             String commandUsage = IgniteSqlCommand.find(command)
                     .map(IgniteSqlCommand::getSyntax)
                     .or(() -> {
@@ -87,22 +91,26 @@ public final class SqlHelpCommand implements 
IHelpCommandInitializable2, Runnabl
             outWriter.println(commandUsage);
         } else {
             String helpMessage = self.getParent().getUsageMessage(colorScheme)
-                    + System.lineSeparator()
+                    + lineSeparator()
                     + sqlCommands()
-                    + System.lineSeparator()
-                    + System.lineSeparator()
-                    + "\nPress Ctrl-D to exit";
+                    + lineSeparator()
+                    + lineSeparator()
+                    + "Press Ctrl-D to exit.";
             outWriter.println(helpMessage);
         }
     }
 
-    private static String sqlCommands() {
-        StringJoiner joiner = new StringJoiner(System.lineSeparator());
-        joiner.add("SQL commands: ");
-        Arrays.stream(IgniteSqlCommand.values())
-                .map(IgniteSqlCommand::getTopic)
-                .forEach(joiner::add);
-        return joiner.toString();
+    private String sqlCommands() {
+        Set<String> topicsSet = new HashSet<>();
+        List<String> topics = new ArrayList<>();
+        for (IgniteSqlCommand command : IgniteSqlCommand.values()) {
+            // Take each command only once.
+            if (topicsSet.add(command.getTopic().toLowerCase())) {
+                topics.add(colorScheme.commandText("  " + 
command.getTopic()).toString());
+            }
+        }
+
+        return topics.stream().collect(Collectors.joining(lineSeparator(), 
"SQL commands" + lineSeparator(), ""));
     }
 
     @Override

Reply via email to