Commit Graph

2908 Commits

Author SHA1 Message Date
Ophir LOJKINE 85fef09f8e Disable unused multipart derive support
Keep actix-multipart's tempfile field reader used by uploads without compiling its unused derive proc macro or bytesize helper.

macOS arm64 cargo build --release: 42,858,960 -> 42,858,832 bytes (-128 bytes).
2026-07-18 00:03:05 +02:00
Ophir LOJKINE f3f9085ba1 Remove unused async and build dependencies
Drop the unused async-recursion proc macro and the redundant build-only futures-util declaration. The build script accesses no futures-util APIs, and awc still brings the implementation it needs transitively.

macOS arm64 cargo build --release: 42,859,984 -> 42,858,960 bytes (-1,024 bytes).
2026-07-18 00:00:21 +02:00
Ophir LOJKINE e257d06c2b Limit configuration parsers to documented formats
Disable config's default INI, RON, async-source, and case-conversion features while retaining JSON, JSON5, TOML, and YAML. Document that previously accepted but unsupported INI and RON files must be migrated.

macOS arm64 cargo build --release: 43,020,288 -> 42,859,984 bytes (-160,304 bytes, -0.37%).
2026-07-17 23:57:54 +02:00
Ophir LOJKINE 91a28d1631 Remove unused SQLx macro facade
Depend directly on sqlx-core-oldapi and use its module-level runtime APIs. SQLPage uses no SQLx query or derive macros, so this removes sqlx-oldapi and sqlx-macros-oldapi from the resolved graph.

macOS arm64 cargo build --release: 43,037,040 -> 43,020,288 bytes (-16,752 bytes, -0.04%).
2026-07-17 23:54:40 +02:00
Ophir LOJKINE 69699b23cb Replace stale Lambda web adapter
Use AWS-maintained lambda_http for event and Runtime API handling, with a small channel-backed bridge to the non-Send Actix service. This adds maintained support for API Gateway v1/v2/WebSockets, ALB, Function URLs, and VPC Lattice while preserving duplicate headers and binary responses.

Stripped macOS arm64 release with --features lambda-web: 37,231,944 -> 36,657,200 bytes (-574,744 bytes, -1.5%).
2026-07-17 23:48:42 +02:00
Ophir LOJKINE 98f15b9566 v0.45 2026-07-17 22:43:03 +02:00
Ophir LOJKINE e704af902b Update dependencies 2026-07-17 22:40:37 +02:00
Ophir LOJKINE d3ea2a24db Merge pull request #1346 from sqlpage/add-documented-send_mail-function
Add SMTP `send_mail` SQL function with configuration and lettre integration
2026-07-17 22:39:10 +02:00
Ophir LOJKINE 889277f942 Support dev profile in Docker builds 2026-07-17 21:46:11 +02:00
Ophir LOJKINE 71d0837117 Link email results to Mailpit 2026-07-17 21:44:52 +02:00
Ophir LOJKINE e71fe455d3 build mail example from repo source 2026-07-17 21:14:34 +02:00
Ophir LOJKINE e8e590d340 Expand sending email example 2026-07-17 15:36:15 +02:00
Ophir LOJKINE 93afed919c Email sending improvement 2026-07-17 15:22:53 +02:00
Ophir LOJKINE 1839738f67 Merge branch 'main' into add-documented-send_mail-function 2026-07-17 13:53:51 +02:00
Ophir LOJKINE 214a986adf Merge remote-tracking branch 'origin/main' into add-documented-send_mail-function 2026-07-17 13:40:14 +02:00
Ophir LOJKINE d85c3dcf87 Merge pull request #1348 from sqlpage/lazy-fn-eval-in-set
advanced lazy sqlpage functions
2026-07-17 00:27:20 +02:00
Ophir LOJKINE 06459c4071 fmt 2026-07-16 17:17:32 +02:00
Ophir LOJKINE 04a94ddf31 fix mysql incompatibility in tests 2026-07-16 17:16:03 +02:00
Ophir LOJKINE ca8d94baa5 fix bug in test error formatting 2026-07-16 17:15:48 +02:00
Ophir LOJKINE 91160ff9c7 Clarify per-row function evaluation 2026-07-16 15:31:24 +02:00
Ophir LOJKINE 099366e4e4 Validate WHERE clause for invalid references 2026-07-16 11:58:32 +02:00
Ophir LOJKINE 5449033f7b Comments 2026-07-16 11:51:25 +02:00
Ophir LOJKINE 7be608212f fix tests on oracle odbc 2026-07-16 11:01:29 +02:00
Ophir LOJKINE f5fddf8ea1 oracle syntax 2026-07-15 18:29:35 +02:00
Ophir LOJKINE 2276b31b91 Merge branch 'main' into lazy-fn-eval-in-set 2026-07-15 18:11:18 +02:00
Ophir LOJKINE 5731544b1d Update AGENTS.md 2026-07-15 18:10:44 +02:00
Ophir LOJKINE 614c6303f5 Handle parentheses around computed projections 2026-07-15 18:03:14 +02:00
Ophir LOJKINE b60d834fd7 Reject computed aliases in database clauses 2026-07-15 17:55:50 +02:00
Ophir LOJKINE c2d27314bf quotes 2026-07-15 17:33:12 +02:00
Ophir LOJKINE f4052d3b83 Order positional bindings by rendered SQL 2026-07-15 17:21:03 +02:00
Ophir LOJKINE bf27e3e711 Restore Oracle container health check 2026-07-15 17:08:26 +02:00
Ophir LOJKINE a175fd4215 Avoid dropping shared filesystem test tables 2026-07-15 16:06:18 +02:00
Ophir LOJKINE b0145c6d1c Reject grouping by computed projections 2026-07-15 16:06:11 +02:00
Ophir LOJKINE 8a35fa1e0d Match concat operator null semantics 2026-07-15 15:53:08 +02:00
Ophir LOJKINE 85254539fb improve error messages 2026-07-15 15:42:20 +02:00
Ophir LOJKINE 365ea0fd43 fix tests on mssql 2026-07-15 15:41:55 +02:00
Ophir LOJKINE c84eb68d77 Keep private inputs after wildcard projections 2026-07-15 15:33:39 +02:00
Ophir LOJKINE 11cc16a95d Clarify scalar SET row semantics 2026-07-15 15:18:44 +02:00
Ophir LOJKINE 556c62a573 Match CONCAT null semantics to the database 2026-07-15 15:05:54 +02:00
Ophir LOJKINE 709153b0e9 Validate SET columns before computed expressions 2026-07-15 15:01:07 +02:00
Ophir LOJKINE 3b5fccab2f Make no-row SQL tests portable 2026-07-15 14:57:11 +02:00
Ophir LOJKINE 5c45103eb2 Preserve backend scalar subquery semantics 2026-07-15 14:43:15 +02:00
Ophir LOJKINE 8427d4c323 Reject ordinal ordering with computed projections 2026-07-15 14:29:17 +02:00
Ophir LOJKINE 106aafc4c1 Preserve computed projection input positions 2026-07-15 14:28:33 +02:00
Ophir LOJKINE c181c21784 Add regressions for computed projection ordering 2026-07-15 14:24:39 +02:00
Ophir LOJKINE 947b189020 Add tests for mixed database and row expression rewriting
Cover cases where SQLPage functions span database and per-row
boundaries, including predicates, projections, and shared request/row
values.

Also add documentation to `QueryResult` and `BoundQuery`, tidy up
borrow expressions in the OIDC client, and rename a conflicting `rows`
alias in a test fixture.
2026-07-15 13:58:14 +02:00
Ophir LOJKINE e07594579b Refactor SQL parameter handling into unified expression tree
Replace the `StmtParam`/`ParameterExtractor` machinery with a shared
`SqlPageExpr` type parameterized over its input source, distinguishing
standalone expressions from per-row expressions via the type system.

Rename `ParsedSqlFile` to `SqlFile` and split SQL parsing into dedicated
`dialect`, `rewrite`, and `statement` submodules. Queries are now
rewritten into either a database query with bindings and computed
columns, or a single-row query evaluated without a database round trip.

Make `SqlPageFunctionName` parsing case-insensitive and support
SQLPage-computed projections and nested functions over query results.
2026-07-15 13:44:31 +02:00
lovasoa 00b969fe7d Add support for email attachments in sqlpage.send_mail
Introduce a `max_email_attachment_size` configuration option and support
for attaching files via data URLs with CC recipients in the send_mail
function. Refactor data URL decoding into a shared utility.
2026-07-14 16:50:37 +02:00
lovasoa 7b72bd5d1a Preserve session state for delayed run_sql 2026-07-11 00:34:44 +02:00
lovasoa 6ec26700ab Fix delayed concat detection 2026-07-11 00:27:24 +02:00