diff --git a/usage/use-case-examples/raw-tables.mdx b/usage/use-case-examples/raw-tables.mdx index 48617a3..a66dae6 100644 --- a/usage/use-case-examples/raw-tables.mdx +++ b/usage/use-case-examples/raw-tables.mdx @@ -33,12 +33,15 @@ Also note that raw tables are only supported by the new [Rust-based sync client] Consider raw tables when you need: -- **Advanced SQLite features** like `FOREIGN KEY` and `ON DELETE CASCADE` constraints - **Indexes** - PowerSync's default schema has basic support for indexes on columns, while raw tables give you complete control to create indexes on expressions, use `GENERATED` columns, etc - **Improved performance** for complex queries (e.g., `SELECT SUM(value) FROM transactions`) - raw tables more efficiently get these values directly from the SQLite column, instead of extracting the value from the JSON object on every row - **Reduced storage overhead** - eliminate JSON object overhead for each row in `ps_data__.data` column - **To manually create tables** - Sometimes you need full control over table creation, for example when implementing custom triggers + +**Advanced SQLite features** like `FOREIGN KEY` and `ON DELETE CASCADE` constraints may need special handling. If your use case requires these features, please reach out to us for guidance and potential workarounds. + + ## How Raw Tables Work ### Current JSON-Based System