Skip to content

Conversation

@gnuhpc
Copy link

@gnuhpc gnuhpc commented Jan 12, 2026

Summary

Add a new fluss-cli module providing interactive SQL command-line interface for Fluss clusters.

Core Features

  • Interactive SQL REPL shell for Fluss clusters
  • Command-line SQL execution with -e and -f options
  • ASCII table formatting for query results
  • Complex type support (ARRAY, MAP, ROW)
  • Connection configuration management
  • Warning suppression for clean output (FLUSS_CLI_SUPPRESS_WARNINGS)

Test Coverage

  • 114 unit tests covering all core functionality
  • Integration test script (fluss-cli-release-check.sh) with 35 test cases
  • All tests passing with 0 failures
  • Checkstyle: 0 violations
  • Apache RAT: all files licensed

Integration

  • Add fluss-cli module to root pom.xml
  • Package CLI JAR in fluss-dist distribution
  • Add CLI documentation to website

Files Changed

  • 29 files changed, 6,505 insertions(+)
  • New module: fluss-cli/ with complete source, tests, and documentation

Core Features:
- Interactive SQL REPL shell for Fluss clusters
- Command-line SQL execution with -e and -f options
- ASCII table formatting for query results
- Complex type support (ARRAY, MAP, ROW)
- Connection configuration management
- Warning suppression for clean output (FLUSS_CLI_SUPPRESS_WARNINGS)

Test Coverage:
- 114 unit tests covering all core functionality
- Integration test script (fluss-cli-release-check.sh) with 35 test cases
- All tests passing with 0 failures
- Checkstyle: 0 violations
- Apache RAT: all files licensed

Integration:
- Add fluss-cli module to root pom.xml
- Package CLI JAR in fluss-dist distribution
- Add CLI documentation to website
- Exclude LICENSE and NOTICE files from dependencies to avoid conflicts
- Inherit ApacheNoticeResourceTransformer from parent pom for aggregation
- Exclude javax/transaction/package.html with forbidden license
- Align with other modules' shade plugin configuration pattern
- Remove redundant exclusions (handled by parent pom)

This fixes the CI license check failures by ensuring:
1. META-INF/LICENSE contains Apache License 2.0
2. META-INF/NOTICE contains 'The Apache Software Foundation'
3. No forbidden license content in the JAR
- Replace String.repeat() with custom repeat() method (Java 11+ → Java 8)
- Replace Files.readString() with Files.readAllBytes() (Java 11+ → Java 8)
- Add StandardCharsets import for UTF-8 encoding

Fixes compilation errors in 'Compile Java 8' CI job.
Include fluss-cli module in fluss-test-coverage dependencies
to ensure code coverage is measured and reported for the new CLI module.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants