Skip to content

0.4.3 release#56

Merged
julien040 merged 9 commits intomainfrom
0.4.3-release
Aug 6, 2025
Merged

0.4.3 release#56
julien040 merged 9 commits intomainfrom
0.4.3-release

Conversation

@julien040
Copy link
Copy Markdown
Owner

This pull request merges the changes for the 0.4.3 release. It fixes issues #51 and #52.

Enhancement

  • Anyquery can now query DuckDB
  • Anyquery can now query Cassandra
  • Clickhouse querying is more efficient (only requested columns are queried)

Before, when a column had the BYTE_ARRAY type, anyquery would still try to interpret it at UTF-8, leading to a Replacement Character.

To fix this, Anyquery now make sure a []byte slice is returned rather than a string.

I couldn't find any other way to fix this as parquet-go/parquet-go returns a string even for a parquet BYTE_ARRAY
As stated in the SQLite docs, https://www.sqlite.org/json1.html#jptr:~:text=The%20SQLite%20version%20of%20json_extract()%20only%20returns%20JSON

SQLite json_extract differs from the MySQL one, which means an additionnal json_unquote isn't needed.
Because the parser is originally for MySQL, I've modified the yacc file to remove json_unquote
Now, Anyquery only queries the column requested by the user to ClickHouse. This speeds up queries because ClickHouse doesn't have to read all columns (while being columnar-based).
When you do a SELECT count(*), SQLite does not request any column, resulting in an empty SELECT for the remote database, which isn't supported by most SQL query engines.
To work around this, we arbitrarily add the first column to the SELECT
@julien040 julien040 requested a review from Copilot August 6, 2025 20:54
@julien040 julien040 self-assigned this Aug 6, 2025
@julien040 julien040 added bug Something isn't working enhancement New feature or request labels Aug 6, 2025
@vercel
Copy link
Copy Markdown

vercel bot commented Aug 6, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
anyquery ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 6, 2025 8:57pm

Copy link
Copy Markdown

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 implements support for querying DuckDB and Cassandra databases within Anyquery, addresses performance optimizations for ClickHouse, and includes various website documentation updates for the 0.4.3 release.

  • Adds new database connectors for DuckDB and Cassandra with full schema introspection and querying capabilities
  • Optimizes ClickHouse queries to only fetch requested columns instead of all columns
  • Updates website documentation with new database guides and styling improvements

Reviewed Changes

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

Show a summary per file
File Description
module/cassandra.go Implements complete Cassandra database module with connection pooling, schema mapping, and CQL query optimization
module/clickhouse.go Optimizes column selection to only fetch columns used in queries, improving performance
module/db_helper.go Adds fallback logic to ensure at least one column is selected for COUNT(*) queries
namespace/namespace.go Registers new Cassandra module and updates supported connections list
namespace/connections.go Implements Cassandra connection registration with table discovery and filtering
website/src/content/docs/docs/database/cassandra.md Comprehensive documentation for Cassandra integration
website/src/content/docs/docs/database/scylladb.md Documentation for ScyllaDB (Cassandra-compatible) support
go.mod Updates dependencies including new Cassandra driver
Files not reviewed (1)
  • website/pnpm-lock.yaml: Language not supported

@julien040 julien040 merged commit a3435da into main Aug 6, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants