Skip to content

Compile time support #35

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open

Compile time support #35

wants to merge 19 commits into from

Conversation

bobozaur
Copy link
Owner

@bobozaur bobozaur commented Jun 6, 2025

Adds compile-time query macros and sqlx-exasol-cli, sqlx-cli like tool. Depends on launchbadge/sqlx#3889.

TODO:

  • Get features in sync with sqlx and fix README and lib.rs
  • Implement compile-time macros tests
  • Implement sqlx-exasol-cli tests
  • Look more closely into module organization since now we're re-exporting sqlx stuff
  • Get rid of test_multi_statement_in_fetch test and adjust fetch_many to address Executor::fetch_many impl should error on arguments or persistence #34
  • Get CI up to speed
  • Get the publish workflow up to speed
  • Check the type_checking (feature-types implementation, array types)
  • Add support for bigdecimal and time crates
  • Look into whether integer conversion to strings can be abstracted away
  • Document the removal of ExaDataType::compatible in favor of TypeInfo::type_compatible
  • Check whether ExaDataType::Null is actually useful since Exasol does not provide columns/parameters nullability
  • Review supported data types to essentially allow the same data types for both compile time and runtime checks
  • Review data type compatibility checks
  • Review whether the Clone bound on ExaIter can be removed
  • Document either usage of extern crate sqlx_exasol as sqlx; or using package in Cargo.toml to satisfy internal SQLx path qualifications
  • Trim down Encode::produces usage where it's not adding any new info
  • Look into implementing Encode/Decode for Json SQLx adapter
  • Consider relaxing runtime length checks for various types, like ints
  • Extend compile time tests to all supported owned and referenced types, including those wrapped in Option
  • Document the removal of Encode for &mut [T]
  • Consider renaming ExaIter to ExaParams
  • Consider adding examples of general usage, ETL and using both sqlx-exasol and sqlx
  • Consider dropping support for more exotic array types, keeping only slices, Vec, and fixed-sized arrays. Others can be wrapped in ExaIter
  • Might have to drop decode support to strings for date time & decimals
  • Update CHANGELOG

Closes #9 . Closes #34 .

@bobozaur bobozaur force-pushed the compile-time-support branch from 76022de to b4f288d Compare July 14, 2025 08:44
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.

Executor::fetch_many impl should error on arguments or persistence Compile-time query support
1 participant