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

chengpan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kyuubi.git


The following commit(s) were added to refs/heads/master by this push:
     new 37bf24423 [KYUUBI #6251] Improve kyuubi-beeline help message
37bf24423 is described below

commit 37bf24423644911ac3e9d6d0d5444561b0858cda
Author: dupeng <[email protected]>
AuthorDate: Fri Apr 12 19:21:08 2024 +0800

    [KYUUBI #6251] Improve kyuubi-beeline help message
    
    # :mag: Description
    ## Issue References ๐Ÿ”—
    
    This pull request fixes #6251
    
    ## Describe Your Solution ๐Ÿ”ง
    As `kyuubi-beeline` is derived from Hive `beeline`, I haven't made 
extensive modifications to its help message, only adjusting some formatting to 
enhance its appearance. Below are the specific changes:
    1. Replace `jdbc:hive2//` with `jdbc:kyuubi//`.
    2. Replace `beeline` with `kyuubi-beeline`.
    3. Capitalize the first letter.
    4. If the comment for a parameter spans multiple lines, add an additional 
`\n` at the end of the comment to separate it from the following line.
    5. Append the help information for `--python-mode` to the front of `--help`.
    6. Add some examples.
    7. Improved letter indentation.
    
    Here is the whole help message:
    ```
    $ ./bin/kyuubi-beeline --help
    Usage: kyuubi-beeline <options>.
    
    Options:
      -u <database url>               The JDBC URL to connect to.
      -c <named url>                  The named JDBC URL to connect to,
                                      which should be present in 
beeline-site.xml
                                      as the value of 
beeline.kyuubi.jdbc.url.<namedUrl>.
    
      -r                              Reconnect to last saved connect url (in 
conjunction with !save).
      -n <username>                   The username to connect as.
      -p <password>                   The password to connect as.
      -d <driver class>               The driver class to use.
      -i <init file>                  Script file for initialization.
      -e <query>                      Query that should be executed.
      -f <exec file>                  Script file that should be executed.
      -w, --password-file <file>      The password file to read password from.
      --hiveconf property=value       Use value for given property.
      --hivevar name=value            Hive variable name and value.
                                      This is Hive specific settings in which 
variables
                                      can be set at session level and 
referenced in Hive
                                      commands or queries.
    
      --property-file=<property file> The file to read connection properties 
(url, driver, user, password) from.
      --color=[true|false]            Control whether color is used for display.
      --showHeader=[true|false]       Show column names in query results.
      --escapeCRLF=[true|false]       Show carriage return and line feeds in 
query results as escaped \r and \n.
      --headerInterval=ROWS;          The interval between which heades are 
displayed.
      --fastConnect=[true|false]      Skip building table/column list for 
tab-completion.
      --autoCommit=[true|false]       Enable/disable automatic transaction 
commit.
      --verbose=[true|false]          Show verbose error messages and debug 
info.
      --showWarnings=[true|false]     Display connection warnings.
      --showDbInPrompt=[true|false]   Display the current database name in the 
prompt.
      --showNestedErrs=[true|false]   Display nested errors.
      --numberFormat=[pattern]        Format numbers using DecimalFormat 
pattern.
      --force=[true|false]            Continue running script even after errors.
      --maxWidth=MAXWIDTH             The maximum width of the terminal.
      --maxColumnWidth=MAXCOLWIDTH    The maximum width to use when displaying 
columns.
      --silent=[true|false]           Be more silent.
      --autosave=[true|false]         Automatically save preferences.
      --outputformat=<format mode>    Format mode for result display.
                                      The available options ars 
[table|vertical|csv2|tsv2|dsv|csv|tsv|json|jsonfile].
                                      Note that csv, and tsv are deprecated, 
use csv2, tsv2 instead.
    
      --incremental=[true|false]      Defaults to false. When set to false, the 
entire result set
                                      is fetched and buffered before being 
displayed, yielding optimal
                                      display column sizing. When set to true, 
result rows are displayed
                                      immediately as they are fetched, yielding 
lower latency and
                                      memory usage at the price of extra 
display column padding.
                                      Setting --incremental=true is recommended 
if you encounter an OutOfMemory
                                      on the client side (due to the fetched 
result set size being large).
                                      Only applicable if --outputformat=table.
    
      --incrementalBufferRows=NUMROWS The number of rows to buffer when 
printing rows on stdout,
                                      defaults to 1000; only applicable if 
--incremental=true
                                      and --outputformat=table.
    
      --truncateTable=[true|false]    Truncate table column when it exceeds 
length.
      --delimiterForDSV=DELIMITER     Specify the delimiter for 
delimiter-separated values output format (default: |).
      --isolation=LEVEL               Set the transaction isolation level.
      --nullemptystring=[true|false]  Set to true to get historic behavior of 
printing null as empty string.
      --maxHistoryRows=MAXHISTORYROWS The maximum number of rows to store 
beeline history.
      --delimiter=DELIMITER           Set the query delimiter; multi-char 
delimiters are allowed, but quotation
                                      marks, slashes, and -- are not allowed 
(default: ;).
    
      --convertBinaryArrayToString=[true|false]
                                      Display binary column data as string or 
as byte array.
    
      --python-mode                   Execute python code/script.
      -h, --help                      Display this message.
    
    Examples:
      1. Connect using simple authentication to Kyuubi Server on 
localhost:10009.
      $ kyuubi-beeline -u jdbc:kyuubi://localhost:10009 -n username
    
      2. Connect using simple authentication to Kyuubi Server on 
kyuubi.local:10009 using -n for username and -p for password.
      $ kyuubi-beeline -n username -p password -u 
jdbc:kyuubi://kyuubi.local:10009
    
      3. Connect using Kerberos authentication with 
kyuubi/localhostmydomain.com as Kyuubi Server principal(kinit is required 
before connection).
      $ kyuubi-beeline -u 
"jdbc:kyuubi://kyuubi.local:10009/default;kyuubiServerPrincipal=kyuubi/localhostmydomain.com"
    
      4. Connect using Kerberos authentication using principal and keytab 
directly.
      $ kyuubi-beeline -u 
"jdbc:kyuubi://kyuubi.local:10009/default;kyuubiClientPrincipal=usermydomain.com;kyuubiClientKeytab=/local/path/client.keytab;kyuubiServerPrincipal=kyuubi/localhostmydomain.com"
    
      5. Connect using SSL connection to Kyuubi Server on localhost:10009.
      $ kyuubi-beeline -u 
"jdbc:kyuubi://localhost:10009/default;ssl=true;sslTrustStore=/usr/local/truststore;trustStorePassword=mytruststorepassword"
    
      6. Connect using LDAP authentication.
      $ kyuubi-beeline -u jdbc:kyuubi://kyuubi.local:10009/default -n 
ldap-username -p ldap-password
    
      7. Connect using the ZooKeeper address to Kyuubi HA cluster.
      $ kyuubi-beeline -u 
"jdbc:kyuubi://zk1:2181,zk2:2181,zk3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi"
 -n username
    ```
    If you have any suggested revisions, I will promptly respond and make the 
necessary adjustments.
    
    ## Types of changes :bookmark:
    
    - [x] Bugfix (non-breaking change which fixes an issue)
    - [ ] New feature (non-breaking change which adds functionality)
    - [ ] Breaking change (fix or feature that would cause existing 
functionality to change)
    
    ## Test Plan ๐Ÿงช
    
    #### Behavior Without This Pull Request :coffin:
    
    #### Behavior With This Pull Request :tada:
    
    #### Related Unit Tests
    
    ---
    
    # Checklist ๐Ÿ“
    
    - [ ] This patch was not authored or co-authored using [Generative 
Tooling](https://www.apache.org/legal/generative-tooling.html)
    
    **Be nice. Be informative.**
    
    Closes #6300 from dupen01/issue-6251.
    
    Closes #6251
    
    69f9b3dc9 [dupeng] deleted usage() from KyuubiBeeLine.java;updated some 
examples
    463bcfb85 [dupeng] update --delimiter description
    95e13c0b6 [dupeng] update some example message
    6625f99b5 [dupeng] update cmd-usage
    6570ec255 [dupeng] update cmd-usage
    59ea1a495 [dupeng] add kyuubi-beeline help message
    
    Authored-by: dupeng <[email protected]>
    Signed-off-by: Cheng Pan <[email protected]>
---
 .../org/apache/hive/beeline/KyuubiBeeLine.java     |   7 -
 .../src/main/resources/BeeLine.properties          | 147 +++++++++++----------
 2 files changed, 77 insertions(+), 77 deletions(-)

diff --git 
a/kyuubi-hive-beeline/src/main/java/org/apache/hive/beeline/KyuubiBeeLine.java 
b/kyuubi-hive-beeline/src/main/java/org/apache/hive/beeline/KyuubiBeeLine.java
index 1efef2b07..bcfa6944e 100644
--- 
a/kyuubi-hive-beeline/src/main/java/org/apache/hive/beeline/KyuubiBeeLine.java
+++ 
b/kyuubi-hive-beeline/src/main/java/org/apache/hive/beeline/KyuubiBeeLine.java
@@ -77,13 +77,6 @@ public class KyuubiBeeLine extends BeeLine {
     }
   }
 
-  @Override
-  void usage() {
-    super.usage();
-    output("Usage: java " + KyuubiBeeLine.class.getCanonicalName());
-    output("   --python-mode                   Execute python code/script.");
-  }
-
   public boolean isPythonMode() {
     return pythonMode;
   }
diff --git a/kyuubi-hive-beeline/src/main/resources/BeeLine.properties 
b/kyuubi-hive-beeline/src/main/resources/BeeLine.properties
index 6b5192b7a..20ad6452c 100644
--- a/kyuubi-hive-beeline/src/main/resources/BeeLine.properties
+++ b/kyuubi-hive-beeline/src/main/resources/BeeLine.properties
@@ -154,73 +154,80 @@ hs2-unknown-connection-problem: Unknown HS2 problem when 
communicating with Thri
 hs2-unexpected-error: Unexpected HS2 error when communicating with the Thrift 
server.
 interrupt-ctrl-c: Interrupting... Please be patient this may take some time.
 
-
-cmd-usage: Usage: java org.apache.hive.cli.beeline.BeeLine \n \
-\  -u <database url>               the JDBC URL to connect to\n \
-\  -c <named url>                  the named JDBC URL to connect to,\n \
-\                                  which should be present in 
beeline-site.xml\n \
-\                                  as the value of 
beeline.hs2.jdbc.url.<namedUrl>\n \
-\  -r                              reconnect to last saved connect url (in 
conjunction with !save)\n \
-\  -n <username>                   the username to connect as\n \
-\  -p <password>                   the password to connect as\n \
-\  -d <driver class>               the driver class to use\n \
-\  -i <init file>                  script file for initialization\n \
-\  -e <query>                      query that should be executed\n \
-\  -f <exec file>                  script file that should be executed\n \
-\  -w (or) --password-file <password file>  the password file to read password 
from\n \
-\  --hiveconf property=value       Use value for given property\n \
-\  --hivevar name=value            hive variable name and value\n \
-\                                  This is Hive specific settings in which 
variables\n \
-\                                  can be set at session level and referenced 
in Hive\n \
-\                                  commands or queries.\n \
-\  --property-file=<property-file> the file to read connection properties 
(url, driver, user, password) from\n \
-\  --color=[true/false]            control whether color is used for display\n 
\
-\  --showHeader=[true/false]       show column names in query results\n \
-\  --escapeCRLF=[true/false]       show carriage return and line feeds in 
query results as escaped \\r and \\n \n \
-\  --headerInterval=ROWS;          the interval between which heades are 
displayed\n \
-\  --fastConnect=[true/false]      skip building table/column list for 
tab-completion\n \
-\  --autoCommit=[true/false]       enable/disable automatic transaction 
commit\n \
-\  --verbose=[true/false]          show verbose error messages and debug 
info\n \
-\  --showWarnings=[true/false]     display connection warnings\n \
-\  --showDbInPrompt=[true/false]   display the current database name in the 
prompt\n \
-\  --showNestedErrs=[true/false]   display nested errors\n \
-\  --numberFormat=[pattern]        format numbers using DecimalFormat 
pattern\n \
-\  --force=[true/false]            continue running script even after errors\n 
\
-\  --maxWidth=MAXWIDTH             the maximum width of the terminal\n \
-\  --maxColumnWidth=MAXCOLWIDTH    the maximum width to use when displaying 
columns\n \
-\  --silent=[true/false]           be more silent\n \
-\  --autosave=[true/false]         automatically save preferences\n \
-\  --outputformat=[table/vertical/csv2/tsv2/dsv/csv/tsv/json/jsonfile]  format 
mode for result display\n \
-\                                  Note that csv, and tsv are deprecated - use 
csv2, tsv2 instead\n \
-\  --incremental=[true/false]      Defaults to false. When set to false, the 
entire result set\n \
-\                                  is fetched and buffered before being 
displayed, yielding optimal\n \
-\                                  display column sizing. When set to true, 
result rows are displayed\n \
-\                                  immediately as they are fetched, yielding 
lower latency and\n \
-\                                  memory usage at the price of extra display 
column padding.\n \
-\                                  Setting --incremental=true is recommended 
if you encounter an OutOfMemory\n \
-\                                  on the client side (due to the fetched 
result set size being large).\n \
-\                                  Only applicable if --outputformat=table.\n \
-\  --incrementalBufferRows=NUMROWS the number of rows to buffer when printing 
rows on stdout,\n \
-\                                  defaults to 1000; only applicable if 
--incremental=true\n \
-\                                  and --outputformat=table\n \
-\  --truncateTable=[true/false]    truncate table column when it exceeds 
length\n \
-\  --delimiterForDSV=DELIMITER     specify the delimiter for 
delimiter-separated values output format (default: |)\n \
-\  --isolation=LEVEL               set the transaction isolation level\n \
-\  --nullemptystring=[true/false]  set to true to get historic behavior of 
printing null as empty string\n \
-\  --maxHistoryRows=MAXHISTORYROWS The maximum number of rows to store beeline 
history.\n \
-\  --delimiter=DELIMITER           set the query delimiter; multi-char 
delimiters are allowed, but quotation\n \
-\                                  marks, slashes, and -- are not allowed; 
defaults to ;\n \
-\  --convertBinaryArrayToString=[true/false]    display binary column data as 
string or as byte array \n \
-\  --help                          display this message\n \
-\n \
-\  Example:\n \
-\   1. Connect using simple authentication to HiveServer2 on localhost:10000\n 
\
-\   $ beeline -u jdbc:hive2://localhost:10000 username password\n\n \
-\   2. Connect using simple authentication to HiveServer2 on hs.local:10000 
using -n for username and -p for password\n \
-\   $ beeline -n username -p password -u jdbc:hive2://hs2.local:10012\n\n \
-\   3. Connect using Kerberos authentication with hive/[email protected] 
as HiveServer2 principal\n \
-\   $ beeline -u 
"jdbc:hive2://hs2.local:10013/default;principal=hive/[email protected]"\n\n
 \
-\   4. Connect using SSL connection to HiveServer2 on localhost at 10000\n \
-\   $ beeline 
"jdbc:hive2://localhost:10000/default;ssl=true;sslTrustStore=/usr/local/truststore;trustStorePassword=mytruststorepassword"\n\n
 \
-\   5. Connect using LDAP authentication\n \
-\   $ beeline -u jdbc:hive2://hs2.local:10013/default <ldap-username> 
<ldap-password>\n \
+cmd-usage: Usage: kyuubi-beeline <options>. \n\n\
+Options:\n\
+\  -u <database url>               The JDBC URL to connect to.\n\
+\  -c <named url>                  The named JDBC URL to connect to,\n\
+\                                  which should be present in 
beeline-site.xml\n\
+\                                  as the value of 
beeline.kyuubi.jdbc.url.<namedUrl>.\n\n\
+\  -r                              Reconnect to last saved connect url (in 
conjunction with !save).\n\
+\  -n <username>                   The username to connect as.\n\
+\  -p <password>                   The password to connect as.\n\
+\  -d <driver class>               The driver class to use.\n\
+\  -i <init file>                  Script file for initialization.\n\
+\  -e <query>                      Query that should be executed.\n\
+\  -f <exec file>                  Script file that should be executed.\n\
+\  -w, --password-file <file>      The password file to read password from.\n\
+\  --hiveconf property=value       Use value for given property.\n\
+\  --hivevar name=value            Hive variable name and value.\n\
+\                                  This is Hive specific settings in which 
variables\n\
+\                                  can be set at session level and referenced 
in Hive\n\
+\                                  commands or queries.\n\n\
+\  --property-file=<property file> The file to read connection properties 
(url, driver, user, password) from.\n\
+\  --color=[true|false]            Control whether color is used for 
display.\n\
+\  --showHeader=[true|false]       Show column names in query results.\n\
+\  --escapeCRLF=[true|false]       Show carriage return and line feeds in 
query results as escaped \\r and \\n. \n\
+\  --headerInterval=ROWS;          The interval between which heades are 
displayed.\n\
+\  --fastConnect=[true|false]      Skip building table/column list for 
tab-completion.\n\
+\  --autoCommit=[true|false]       Enable/disable automatic transaction 
commit.\n\
+\  --verbose=[true|false]          Show verbose error messages and debug 
info.\n\
+\  --showWarnings=[true|false]     Display connection warnings.\n\
+\  --showDbInPrompt=[true|false]   Display the current database name in the 
prompt.\n\
+\  --showNestedErrs=[true|false]   Display nested errors.\n\
+\  --numberFormat=[pattern]        Format numbers using DecimalFormat 
pattern.\n\
+\  --force=[true|false]            Continue running script even after 
errors.\n\
+\  --maxWidth=MAXWIDTH             The maximum width of the terminal.\n\
+\  --maxColumnWidth=MAXCOLWIDTH    The maximum width to use when displaying 
columns.\n\
+\  --silent=[true|false]           Be more silent.\n\
+\  --autosave=[true|false]         Automatically save preferences.\n\
+\  --outputformat=<format mode>    Format mode for result display.\n\
+\                                  The available options ars 
[table|vertical|csv2|tsv2|dsv|csv|tsv|json|jsonfile]. \n\
+\                                  Note that csv, and tsv are deprecated, use 
csv2, tsv2 instead.\n\n\
+\  --incremental=[true|false]      Defaults to false. When set to false, the 
entire result set\n\
+\                                  is fetched and buffered before being 
displayed, yielding optimal\n\
+\                                  display column sizing. When set to true, 
result rows are displayed\n\
+\                                  immediately as they are fetched, yielding 
lower latency and\n\
+\                                  memory usage at the price of extra display 
column padding.\n\
+\                                  Setting --incremental=true is recommended 
if you encounter an OutOfMemory\n\
+\                                  on the client side (due to the fetched 
result set size being large).\n\
+\                                  Only applicable if 
--outputformat=table.\n\n\
+\  --incrementalBufferRows=NUMROWS The number of rows to buffer when printing 
rows on stdout,\n\
+\                                  defaults to 1000; only applicable if 
--incremental=true\n\
+\                                  and --outputformat=table.\n\n\
+\  --truncateTable=[true|false]    Truncate table column when it exceeds 
length.\n\
+\  --delimiterForDSV=DELIMITER     Specify the delimiter for 
delimiter-separated values output format (default: |).\n\
+\  --isolation=LEVEL               Set the transaction isolation level.\n\
+\  --nullemptystring=[true|false]  Set to true to get historic behavior of 
printing null as empty string.\n\
+\  --maxHistoryRows=MAXHISTORYROWS The maximum number of rows to store beeline 
history.\n\
+\  --delimiter=DELIMITER           Set the query delimiter; multi-char 
delimiters are allowed, but quotation\n\
+\                                  marks, slashes, and -- are not allowed 
(default: ;).\n\n\
+\  --convertBinaryArrayToString=[true|false]\n\
+\                                  Display binary column data as string or as 
byte array.\n\n\
+\  --python-mode                   Execute python code/script.\n\
+\  -h, --help                      Display this message.\n\
+\n\
+Examples:\n\
+\  1. Connect using simple authentication to Kyuubi Server on 
localhost:10009.\n\
+\  $ kyuubi-beeline -u jdbc:kyuubi://localhost:10009 -n username\n\n\
+\  2. Connect using simple authentication to Kyuubi Server on 
kyuubi.local:10009 using -n for username and -p for password.\n\
+\  $ kyuubi-beeline -n username -p password -u 
jdbc:kyuubi://kyuubi.local:10009\n\n\
+\  3. Connect using Kerberos authentication with kyuubi/[email protected] 
as Kyuubi Server principal(kinit is required before connection).\n\
+\  $ kyuubi-beeline -u 
"jdbc:kyuubi://kyuubi.local:10009/default;kyuubiServerPrincipal=kyuubi/[email protected]"\n\n\
+\  4. Connect using Kerberos authentication using principal and keytab 
directly.\n\
+\  $ kyuubi-beeline -u 
"jdbc:kyuubi://kyuubi.local:10009/default;[email protected];kyuubiClientKeytab=/local/path/client.keytab;kyuubiServerPrincipal=kyuubi/[email protected]"\n\n\
+\  5. Connect using SSL connection to Kyuubi Server on localhost:10009.\n\
+\  $ kyuubi-beeline -u 
"jdbc:kyuubi://localhost:10009/default;ssl=true;sslTrustStore=/usr/local/truststore;trustStorePassword=mytruststorepassword"\n\n\
+\  6. Connect using LDAP authentication.\n\
+\  $ kyuubi-beeline -u jdbc:kyuubi://kyuubi.local:10009/default -n 
ldap-username -p ldap-password\n\n\
+\  7. Connect using the ZooKeeper address to Kyuubi HA cluster.\n\
+\  $ kyuubi-beeline -u 
"jdbc:kyuubi://zk1:2181,zk2:2181,zk3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi"
 -n username

Reply via email to