WIP: arrow_connector / ConnectorX integration for high-performance database loading #186
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Work in Progress - ConnectorX Integration
Experimental work to integrate ConnectorX as an alternative/complement to existing sqlx connectors for database → Arrow loading.
Meant for #185
What Has Been Done
connectorxdependency with feature flagsConnectorXLoaderfor Postgres/MySQLconnectorx-postgres,connectorx-mysql,connectorx-all,production-cxKnown Issues
1. Arrow Version Mismatch (BLOCKER)
ConnectorX uses Arrow v54.3.1, while the project uses Arrow v57.2.0.
Error:
expected arrow::array::RecordBatch, found arrow_array::record_batch::RecordBatchThis is a fundamental incompatibility - two different major versions of the arrow-array crate are being used, and Rust treats them as completely different types.
2. libsqlite3-sys Conflict
connectorx/src_sqliteandsqlx/sqlitelink different versions oflibsqlite3-sys.SQLite support via ConnectorX is temporarily disabled.
Potential Solutions
Option 1: connector_arrow (Recommended)
A lighter fork of ConnectorX focused on Rust usage:
Option 2: Arrow IPC Conversion
Option 3: Downgrade Arrow
Documentation References
TODO
Technical Notes
Main implementation:
src/engines/connectorx_loader.rsNote: This is an experimental branch - do not merge without resolving the Arrow version compatibility issue.