Commit Graph

13 Commits

Author SHA1 Message Date
Noa e3582131fe Migrate to Rust 2024 (#3802)
# Description of Changes

It'd be best to review this commit-by-commit, and using
[difftastic](https://difftastic.wilfred.me.uk) to easily tell when
changes are minor in terms of syntax but a line based diff doesn't show
that.

# Expected complexity level and risk

3 - edition2024 does bring changes to drop order, which could cause
issues with locks, but I looked through [all of the warnings that
weren't fixed
automatically](https://gistcdn.githack.com/coolreader18/80485ae5c5f82de1784229cce2febb26/raw/ba80f3fecda66ceb34f4f7ad73b98ea02d4893a2/warnings.html)
and couldn't find any issues.

# Testing

n/a; internal code change
2026-03-03 11:06:52 +00:00
Mazdak Farrokhzad ae15508dee Identifiers: Refactor + Improve type-safety & performance (#4177)
# Description of Changes

The goal of this PR is to:
- Make it easy to switch our backing implementation of identifiers, as
seen in the commit changing to `LeanString`.
- Improve type safety of our identifiers by having every identifier
start with `RawIdentifier` and then `Identifier` is just a wrapper with
validation on construction. `TableName` and `ReducerName` are then just
wrappers around `Identifier`.
- Reduce allocation in `InstanceEnv` by using the now clone-on-write
O(1) + SSO optimized `Identifier`.
- Reduce allocations in the query engine as a consequence of improving
`RawIdentifier` and `Identifier`.
- Have `&'static str` strings be further optimized by avoiding to
allocate even for long ones. This is supported by `impl From<&'static
str> for RawIdentifier` as well as switching to `LeanString`.

The PR results in a roughly 2k TPS improvement over master for WASM +
hash indices. This should also help V8, as this is VM-agnostic.

# API and ABI breaking changes

None

# Expected complexity level and risk

3? Mostly just small changes in many places, but in a sea of small
changes, mistakes can happen.

# Testing

Covered by existing tests.
2026-02-04 20:54:56 +00:00
joshua-spacetime 340460e26b Return error for unqualified columns instead of panic (#2572) 2025-04-09 15:41:46 +00:00
joshua-spacetime 01c391f8a9 Add sql support for :sender parameter (#2483) 2025-03-21 17:53:34 +00:00
joshua-spacetime aeaa7a423d Add support for COUNT (#2285) 2025-02-20 16:37:33 +00:00
joshua-spacetime 6abfe8ddba Add support for LIMIT (#2279) 2025-02-19 20:18:44 +00:00
joshua-spacetime 10598ba5c0 fix: qualified projection columns (#2070) 2024-12-19 20:35:45 +00:00
joshua-spacetime 921170816c query rewriter (#2031) 2024-12-12 22:08:43 +00:00
joshua-spacetime df5b78a2ff refactor: Add TableId to relvar type (#1803) 2024-10-11 17:54:07 +00:00
joshua-spacetime 65c72cd2b6 refactor: Intern names in relation expressions (#1754) 2024-09-30 20:55:43 +00:00
joshua-spacetime 06e5be5fd2 feat: Type check DML (#1727) 2024-09-24 23:52:29 +00:00
joshua-spacetime f047bb14f7 feat: sql type checking and logical plan (#1708) 2024-09-17 15:41:19 +00:00
Mario Montoya 8ee1de60b4 Update SQL AST in accordance with the SQL spec (#1623)
Co-authored-by: joshua-spacetime <josh@clockworklabs.io>
2024-08-29 23:44:27 +00:00