Skip to content

Conversation

@xiangfu0
Copy link
Contributor

@xiangfu0 xiangfu0 commented Oct 16, 2025

Adds a new pinot-cli module providing a modern CLI for Apache Pinot:

  • Interactive REPL with multi-line SQL, history, and optional pager
  • Batch execution with multiple output formats: CSV/TSV/JSON/ALIGNED/VERTICAL/AUTO/MARKDOWN
  • Config via properties file (PINOT_CONFIG) and environment variables, forwards session options
  • Supports extra HTTP headers and debug diagnostics
  • Shaded executable JAR

Build:
./mvnw -DskipTests -pl pinot-clients/pinot-cli -am package

Artifacts:

  • pinot-clients/pinot-cli/target/pinot-cli-executable.jar (shaded, executable)

Notes:

  • Uses pinot-jdbc-client, picocli, and jline
  • Keeps default interactive format ALIGNED; AUTO switches based on terminal width

@xiangfu0 xiangfu0 added user-experience Related to user experience pinot-client labels Oct 16, 2025
@xiangfu0 xiangfu0 requested a review from Copilot October 16, 2025 19:50
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a new pinot-cli module providing a modern command-line interface for Apache Pinot with both interactive REPL and batch execution capabilities.

Key changes:

  • Interactive REPL with multi-line SQL support, command history, and optional pager integration
  • Multiple output formats (CSV, TSV, JSON, ALIGNED, VERTICAL, AUTO, MARKDOWN) for flexible data presentation
  • Configuration support via properties files and environment variables with session option forwarding

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.

File Description
pinot-clients/pom.xml Added pinot-cli module to the parent POM's modules list
pinot-clients/pinot-cli/pom.xml Maven configuration for the new CLI module with dependencies and shaded JAR build
pinot-clients/pinot-cli/src/main/java/org/apache/pinot/cli/PinotCli.java Main CLI implementation with REPL, batch execution, and formatting logic
pinot-clients/pinot-cli/README.md Comprehensive documentation for CLI usage, configuration, and examples

@xiangfu0 xiangfu0 force-pushed the pinot-cli branch 3 times, most recently from 5b7c670 to 0a67ce4 Compare October 17, 2025 06:04
@xiangfu0 xiangfu0 requested a review from Copilot October 17, 2025 12:17
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

@xiangfu0 xiangfu0 force-pushed the pinot-cli branch 2 times, most recently from b14df23 to 6289912 Compare October 17, 2025 14:31
@xiangfu0 xiangfu0 merged commit 599b139 into apache:master Oct 25, 2025
37 of 38 checks passed
@xiangfu0 xiangfu0 deleted the pinot-cli branch October 25, 2025 01:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pinot-client user-experience Related to user experience

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants