Tags: spaceandtimefdn/sxt-proof-of-sql
Tags
fix!: use keccak instead of blake3 for varchar hashing (#822) Please be sure to look over the pull request guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr. # Please go through the following checklist - [ ] The PR title and commit messages adhere to guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md. In particular `!` is used if and only if at least one breaking change has been introduced. - [ ] I have run the ci check script with `source scripts/run_ci_checks.sh`. - [ ] I have run the clean commit check script with `source scripts/check_commits.sh`, and the commit history is certified to follow clean commit guidelines as described here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/COMMIT_GUIDELINES.md - [ ] The latest changes from `main` have been incorporated to this PR by simple rebase if possible, if not, then conflicts are resolved appropriately. # Rationale for this change We need to be using keccak instead of blak3. # What changes are included in this PR? Replacing usage of keccak with blak3. # Are these changes tested?
refactor: simplify decompostion of scalars in range check (#819) Please be sure to look over the pull request guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr. # Please go through the following checklist - [ ] The PR title and commit messages adhere to guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md. In particular `!` is used if and only if at least one breaking change has been introduced. - [ ] I have run the ci check script with `source scripts/run_ci_checks.sh`. - [ ] I have run the clean commit check script with `source scripts/check_commits.sh`, and the commit history is certified to follow clean commit guidelines as described here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/COMMIT_GUIDELINES.md - [ ] The latest changes from `main` have been incorporated to this PR by simple rebase if possible, if not, then conflicts are resolved appropriately. # Rationale for this change The function `decompose_scalars_to_words` in range check takes a mutable reference. We don't want that. # What changes are included in this PR? Removing the mutable reference. # Are these changes tested? Yes
refactor: benches should support multiple tables (#818) # Rationale for this change In order to support benchmarking operations like `JOIN`, the benchmark framework needs to support defining multiple tables for a query. This PR refactors the benchmarking query framework to support adding multiple tables. None of the queries have changed. Follow up work will add the `JOIN` query. # What changes are included in this PR? - The benchmark framework now supports defining multiple tables # Are these changes tested? Yes
refactor: get_logarithmic_derivative (#814) Please be sure to look over the pull request guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr. # Please go through the following checklist - [ ] The PR title and commit messages adhere to guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md. In particular `!` is used if and only if at least one breaking change has been introduced. - [ ] I have run the ci check script with `source scripts/run_ci_checks.sh`. - [ ] I have run the clean commit check script with `source scripts/check_commits.sh`, and the commit history is certified to follow clean commit guidelines as described here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/COMMIT_GUIDELINES.md - [ ] The latest changes from `main` have been incorporated to this PR by simple rebase if possible, if not, then conflicts are resolved appropriately. # Rationale for this change The function `get_logarithmic_derivative` has a mutable reference. # What changes are included in this PR? Removing the mutable reference # Are these changes tested? Yes
feat!: add more literal variants to EVM proof expr (#813) # Rationale for this change We need to support a broader set of SQL literal types in the EVM proof plan so that boolean, numeric, hexadecimal, binary, decimal, and timestamp literals can be reliably converted into EVM expressions without errors. # What changes are included in this PR? - **Expose raw limbs of `I256`:** - Added a `raw(&self) -> [u64; 4]` method to `I256` for low-level access to the internal representation. - **Improve error handling in EVM proof plan:** - Changed import to include `DecimalError` alongside `AnalyzeError`. - Introduced an `InvalidTimeUnit` variant and a transparent `DecimalError` wrapper in `EVMProofPlanError`. - **Extend literal conversion in `exprs.rs`:** - Imported `Precision`, `I256`, `PoSQLTimeUnit`, and `PoSQLTimeZone` to handle decimals and timestamps. - Updated `EVMDynProofExpr` to use `try_from_proof_expr` / `try_to_proof_expr` for fallible conversions. - Defined a new `EVMLiteralExpr` enum with variants for: - `Boolean(bool)`, `Uint8(u8)`, `TinyInt(i8)`, `SmallInt(i16)`, `Int(i32)`, `BigInt(i64)` - `VarChar(String)`, `VarBinary(Vec<u8>)`, `Int128(i128)` - `Decimal75(u8 /* precision */, i8 /* scale */, [u64; 4] /* limbs */)` - `Scalar([u64; 4])` - `TimeStampTZ(u64 /* unit-value */, i32 /* tz offset secs */, i64 /* epoch units */)`. - **Minor cleanup:** - Reorganized imports and formatting to accommodate the new variants and keep the code tidy. # Are these changes tested? Yes. The existing EVM proof expression tests cover the new literal-handling logic, so no additional tests were required.
refactor: simplify range check syntax (#816) Please be sure to look over the pull request guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr. # Please go through the following checklist - [ ] The PR title and commit messages adhere to guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md. In particular `!` is used if and only if at least one breaking change has been introduced. - [ ] I have run the ci check script with `source scripts/run_ci_checks.sh`. - [ ] I have run the clean commit check script with `source scripts/check_commits.sh`, and the commit history is certified to follow clean commit guidelines as described here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/COMMIT_GUIDELINES.md - [ ] The latest changes from `main` have been incorporated to this PR by simple rebase if possible, if not, then conflicts are resolved appropriately. # Rationale for this change There are a few places in range check that could be written more succinctly. # What changes are included in this PR? Reduction of code. # Are these changes tested? Yes
bench: update filter, complex filter, and group by queries (#815) # Rationale for this change Recently the benchmarks were updated using a filter, complex filter, and group by query. This PR updates the `proof-of-sql-benches` crate to have those queries. # What changes are included in this PR? - The Single Column Filter query is renamed to Filter - The Multi-Column Filter query is updated and renamed to Complex Filter - The Group-By query is updated to a more realistic query # Are these changes tested? Yes
feat: uppercase column visitor (#811) Please be sure to look over the pull request guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr. # Please go through the following checklist - [ ] The PR title and commit messages adhere to guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md. In particular `!` is used if and only if at least one breaking change has been introduced. - [ ] I have run the ci check script with `source scripts/run_ci_checks.sh`. - [ ] I have run the clean commit check script with `source scripts/check_commits.sh`, and the commit history is certified to follow clean commit guidelines as described here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/COMMIT_GUIDELINES.md - [ ] The latest changes from `main` have been incorporated to this PR by simple rebase if possible, if not, then conflicts are resolved appropriately. # Rationale for this change `sqlparser::Statement` does not have a built in way to capitalize all the column and table idents, and we would like that functionality. # What changes are included in this PR? New function for capitalizing all the idents in a `Statement`. # Are these changes tested? Yes
ci: disable new solhint rule `import-path-check` (#812) Please be sure to look over the pull request guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr --- # Please go through the following checklist - [x] The PR title and commit messages adhere to guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md (breaking changes use `!`) - [x] I have run the CI check script with ```bash source scripts/run_ci_checks.sh ``` - [x] I have run the clean commit check script with ```bash source scripts/check_commits.sh ``` and the commit history follows the clean-commit guidelines: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/COMMIT_GUIDELINES.md - [x] The latest changes from `main` have been incorporated into this PR by simple rebase (or conflicts have been resolved appropriately). --- # Rationale for this change The newly introduced Solhint `import-path-check` rule is flagging valid Forge standard library imports (e.g. `forge-std/Test.sol`) because it doesn’t respect Foundry’s remappings. Disabling this rule prevents spurious lint failures while we evaluate a long-term solution. --- # What changes are included in this PR? - **Update** `solidity/.solhint.json` to turn off the `import-path-check` rule: ```diff "gas-calldata-parameters": "off", +"import-path-check": "off", "max-line-length": "off", # Are these changes tested? Yes – running Solhint after this change no longer produces import-path errors, and all other lint rules still pass.
ci: move code coverage to its own file and not make it block releases (… …#810) Please be sure to look over the pull request guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr --- ## Please go through the following checklist - [x] The PR title and commit messages adhere to guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md (breaking changes use `!`) - [x] I have run the CI check script with ```bash source scripts/run_ci_checks.sh ``` - [x] I have run the clean commit check script with ```bash source scripts/check_commits.sh ``` and the commit history follows the clean-commit guidelines: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/COMMIT_GUIDELINES.md - [x] The latest changes from `main` have been incorporated into this PR by simple rebase (or conflicts have been resolved appropriately). --- # Rationale for this change Moving code coverage into its own workflow decouples coverage reporting from the main lint-and-test pipeline, ensuring coverage checks no longer block release merges while still enforcing our minimum coverage threshold. --- # What changes are included in this PR? - **Add** `.github/workflows/code-coverage.yml` - Defines a dedicated `CI-Code-Coverage` job that runs on pull request events and in merge groups - Installs dependencies, generates coverage data with `cargo llvm-cov`, uploads to Codecov, and enforces a minimum coverage threshold - **Update** `.github/workflows/lint-and-test.yml` - **Remove** the embedded code coverage job so that linting and tests run independently of coverage --- # Are these changes tested? Yes. All existing lint-and-test jobs pass as before, and the new code coverage workflow executes successfully on pull requests without blocking releases.
PreviousNext