mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-07-25 03:22:43 -04:00
047dac9745
# Description of Changes This patch removes the dead legacy SQL query engine and the remaining code that only existed to support it. Removed: - Old SQL compiler/type-checker and VM-based execution path in spacetimedb-core - `spacetimedb-vm` crate - Dead vm specific error variants and compatibility code - Obsolete tests, benchmarks, and config paths that still referenced the legacy engine Small pieces still used by the current engine were moved to their proper homes instead of keeping the `vm` crate around. In particular, `RelValue` was moved to `spacetimedb-execution`. The `sqltest` crate was also updated to use the current engine. Notably though these tests are not run in CI, however I've kept them around as they may be beneficial as we look to expand our SQL support in the future. Requires codeowner review from @cloutiertyler due to the removal of the `LICENSE` file in the (now removed) `vm` crate. # API and ABI breaking changes None # Expected complexity level and risk 1 # Testing None --------- Co-authored-by: clockwork-labs-bot <clockwork-labs-bot@users.noreply.github.com>
This crate check the conformance of SpacetimeDB to SQL:2016
⚠️ Internal Crate ⚠️
This crate is intended for internal use only. It is not stable and may change without notice.
Setup PG
Create a database called TestSpace
Issues
List of issues in the execution of the conformance test
UNSUPPORTED: issue 1
CHARACTERS/OCTETS is not implemented by neither PG nor Sqlite
CREATE TABLE TABLE_E021_01_01_02 ( A CHAR ( 8 CHARACTERS ) )
CREATE TABLE TABLE_E021_01_01_02 ( A CHAR ( 8 OCTETS ) )
UNSUPPORTED: issue 2
CHAR VARING is not implemented by neither PG nor Sqlite
CREATE TABLE TABLE_E021_02_01_02 ( A CHAR VARING ( 8 CHARACTERS ) )
UNSUPPORTED: issue 3
AS ( C , D ) is a syntax error on PG and Sqlite
SELECT * AS ( C , D ) FROM TABLE_E051_07_01_01
REPLACED: issue 4
CURRENT_TIME and timetz type is marked as "Don't use EVER" by PG:
https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_timetz
SELECT CURRENT_TIME
UNSUPPORTED: issue 5
CASE 0 WHEN 2 , 2 is a syntax error on PG and Sqlite
SELECT CASE 0 WHEN 2 , 2 THEN 1 END
WRONG: issue 6
This expression fail in PG by the lack of a timezone and Sqlite spit out a nonsensical value (1)
SELECT CAST ( CAST ( '01:02:03' AS TIME ) AS TIMESTAMP )