SkillAgentSearch skills...

Bendsql

Databend Native Client

Install / Use

/learn @databendlabs/Bendsql
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

BendSQL

Databend Native Client in Rust

Components

  • core: Databend RestAPI Rust Client

  • driver: Databend SQL Client for both RestAPI and FlightSQL in Rust

  • cli: Databend Native CLI

Bindings

  • python: Databend Python Client

  • nodejs: Databend Node.js Client

  • java: Databend Java Client (upcoming)

Installation for BendSQL

Installation script

curl -fsSL https://repo.databend.com/install/bendsql.sh | bash

or

curl -fsSL https://repo.databend.com/install/bendsql.sh | bash -s -- -y --prefix /usr/local

Cargo:

cargo-binstall is recommended:

cargo binstall bendsql

Or alternatively build from source:

cargo install bendsql

Homebrew:

brew install databendcloud/homebrew-tap/bendsql

Apt:

  • Using DEB822-STYLE format on Ubuntu-22.04/Debian-12 and later:
sudo curl -L -o /etc/apt/sources.list.d/databend.sources https://repo.databend.com/deb/databend.sources
  • Using old format on Ubuntu-20.04/Debian-11 and earlier:
sudo curl -L -o /usr/share/keyrings/databend-keyring.gpg https://repo.databend.com/deb/databend.gpg
sudo curl -L -o /etc/apt/sources.list.d/databend.list https://repo.databend.com/deb/databend.list

Then install bendsql:

sudo apt update

sudo apt install bendsql

Manually:

Check for latest version on GitHub Release

Usage

❯ bendsql --help
Databend Native Command Line Tool

Usage: bendsql [OPTIONS]

Options:
      --help                       Print help information
      --flight                     Using flight sql protocol, ignored when --dsn is set
      --tls <TLS>                  Enable TLS, ignored when --dsn is set [possible values: true, false]
  -h, --host <HOST>                Databend Server host, Default: 127.0.0.1, ignored when --dsn is set
  -P, --port <PORT>                Databend Server port, Default: 8000, ignored when --dsn is set
  -u, --user <USER>                Default: root, overrides username in DSN
  -p, --password <PASSWORD>        Password, overrides password in DSN [env: BENDSQL_PASSWORD]
  -r, --role <ROLE>                Downgrade role name, overrides role in DSN
  -D, --database <DATABASE>        Database name, overrides database in DSN
      --set <SET>                  Settings, overrides settings in DSN
      --dsn <DSN>                  Data source name [env: BENDSQL_DSN]
  -n, --non-interactive            Force non-interactive mode
  -A, --no-auto-complete           Disable loading tables and fields for auto-completion, which offers a quicker start
      --check                      Check for server status and exit
      --query=<QUERY>              Query to execute
  -d, --data <DATA>                Data to load, @file or @- for stdin. The `--query` should use the syntax: `INSERT FROM <table> from @_databend_load file_format=(<file_format_options>)`
  -o, --output <OUTPUT>            Output format [possible values: table, csv, tsv, null]
      --quote-style <QUOTE_STYLE>  Output quote style, applies to `csv` and `tsv` output formats [possible values: always, necessary, non-numeric, never]
      --progress                   Show progress for query execution in stderr, only works with output format `table` and `null`.
      --stats                      Show stats after query execution in stderr, only works with non-interactive mode.
      --time[=<TIME>]              Only show execution time without results, will implicitly set output format to `null`. [possible values: local, server]
  -l, --log-level <LOG_LEVEL>      [default: info]
  -V, --version                    Print version

Custom configuration

By default bendsql will read configuration from ~/.bendsql/config.toml and ~/.config/bendsql/config.toml sequentially if exists.

  • Example file
❯ cat ~/.bendsql/config.toml
[connection]
host = "127.0.0.1"
tls = false

[connection.args]
connect_timeout = "30"

[settings]
display_pretty_sql = true
progress_color = "green"
no_auto_complete = true
prompt = ":) "
  • Connection section

| Parameter | Description | | ---------- | --------------------------- | | host | Server host to connect. | | port | Server port to connect. | | user | User name. | | database | Which database to connect. | | args | Additional connection args. |

  • Settings section

| Parameter | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------- | | display_pretty_sql | Whether to display SQL queries in a formatted way. | | prompt | The prompt to display before asking for input. | | progress_color | The color to use for the progress bar. | | show_progress | Whether to show a progress bar when executing queries. | | show_stats | Whether to show statistics after executing queries. | | no_auto_complete | Whether to disable loading tables and fields for auto-completion on startup. | | max_display_rows | The maximum number of rows to display in table output format. | | max_width | Limit display render box max width, 0 means default to the size of the terminal. 65535 means no limit for max_width | | max_col_width | Limit display render each column max width, smaller than 3 means disable the limit. | | output_format | The output format to use. | | expand | Expand table format display, default auto, could be on/off/auto. | | time | Whether to show the time elapsed when executing queries. | | multi_line | Whether to allow multi-line input. | | quote_string | Whether to quote string values in table output format, default false. | | sql_delimiter | SQL delimiter, default ;. |

Commands in REPL

| Commands | Description | | -------------- | ----------------------- | | !exit | Exit bendsql | | !quit | Exit bendsql | | !configs | Show current settings | | !set | Set settings | | !source file | Source file and execute |

Setting commands in REPL

We can use !set CMD_NAME VAL to update the Settings above in runtime, example:

❯ bendsql

:) !set display_pretty_sql false
:) !set max_display_rows 10
:) !set expand auto

DSN

Format:

databend[+flight]://user:[password]@host[:port]/[database][?sslmode=disable][&arg1=value1]

Examples:

  • databend://root:@localhost:8000/?sslmode=disable&presign=detect

  • databend://user1:password1@tnxxxx.gw.aws-us-east-2.default.databend.com:443/benchmark?warehouse=default&enable_dphyp=1

  • databend+flight://root:@localhost:8900/database1?connect_timeout=10

Available Args

Common

| Arg | Description | | ----------------- | ------------------------------------ | | tenant | Tenant ID, Databend Cloud only. | | warehouse | Warehouse name, Databend Cloud only. | | sslmode | Set to disable if not using tls. | | tls_ca_file | Custom root CA certificate path. | | connect_timeout | Connect timeout in seconds |

RestAPI Client

| Arg | Description | Default | |-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------| | query_result_format | (Since v0.33.1) Format to fetch result set, available arguments are json/arrow. | JSON | | sslmode | SSL mode, available values are enable/disable. | disable | | wait_time_secs | Request wait time for page. | 1 | | max_rows_per_page | Max result rows for a single page. | 10000 | | page_request_timeout_secs | Timeout for a single page request. | 30 | | presign | Whether to enable presign for data loading, available

Related Skills

View on GitHub
GitHub Stars61
CategoryData
Updated4d ago
Forks26

Languages

Rust

Security Score

95/100

Audited on Apr 2, 2026

No findings