Skip to content

SQLite extension loading via sqlx.toml for CLI and query macros#3713

Closed
djarb wants to merge 79 commits into
transact-rs:sqlx-tomlfrom
djarb:sqlx-toml
Closed

SQLite extension loading via sqlx.toml for CLI and query macros#3713
djarb wants to merge 79 commits into
transact-rs:sqlx-tomlfrom
djarb:sqlx-toml

Conversation

@djarb

@djarb djarb commented Jan 29, 2025

Copy link
Copy Markdown
Contributor

fixes issue #3330 by allowing the query checking macros to load SQLite extensions specified in sqlx.toml.

Related to that, also allows the CLI to load the SQLite extensions specified in sqlx.toml when running migrations

@abonander abonander left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'm very keen in landing this, but besides fixing the build, it does also need some sort of test to prove that it works, and ideally a compile-checked example that shows how to use it. In #3383 I realized I could take out two birds with one stone by adding some example projects showing off the new configuration. I'd suggest doing the same.

@abonander

Copy link
Copy Markdown
Collaborator

(I'm just now realizing the build failures are from #3383 itself so disregard that.)

@djarb

djarb commented Jan 31, 2025

Copy link
Copy Markdown
Contributor Author

I'll be happy to add an example, but there's a complication: to demonstrate this functionality, it's necessary to load a SQLite extension, and that requires that the example is dependent on having that extension installed. Are you okay with having an example that has a third-party dependency which is not shipped with SQLx? If so, what is your preference for how I structure that?

@abonander

Copy link
Copy Markdown
Collaborator

Our CI already downloads an extension from https://github.com/nalgeon/sqlean/ for testing: https://github.com/launchbadge/sqlx/blob/65229f7ff91ecd38be7c10fb61ff3e05bedabe87/.github/workflows/sqlx.yml#L125

One thing is that for Unix platforms, you need to show the user either how to set LD_LIBRARY_PATH or to specify a relative path to the extension.

@djarb djarb requested a review from abonander February 3, 2025 11:06
@djarb

djarb commented Feb 12, 2025

Copy link
Copy Markdown
Contributor Author

Is there anything further that you need from me to get this merged?

@djarb

djarb commented Mar 28, 2025

Copy link
Copy Markdown
Contributor Author

Hello? Just checking in. I'd really appreciate it if this could be merged, or if you could let me know what I need to do to get it to that point.

@djarb

djarb commented Jun 2, 2025

Copy link
Copy Markdown
Contributor Author
  • Updated the pull request to apply to the current version of the branch.
  • The requested example is in place. It has been for months, but I just realized I never explicitly said so.
  • To run the example use ./x.py -p sqlite/extension in the examples/ directory.
  • A couple of minor, unrelated bug fixes that were necessary in order to be able to run cargo check and the example with the current sqlx-toml version

@abonander abonander force-pushed the sqlx-toml branch 6 times, most recently from f46f747 to 60cacd7 Compare June 4, 2025 23:02
@abonander abonander force-pushed the sqlx-toml branch 2 times, most recently from b6b09f3 to 243d810 Compare June 30, 2025 23:19
@abonander abonander deleted the branch transact-rs:sqlx-toml June 30, 2025 23:34
@abonander abonander closed this Jun 30, 2025
@abonander

Copy link
Copy Markdown
Collaborator

@djarb this got closed because I merged and deleted the sqlx-toml branch. Please rebase against main and open a new PR.

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.

3 participants