Sync Rules are deprecated. This page applies to both Sync Streams and Sync Rules unless a section says otherwise.
Case in Sync Queries
PowerSync converts all table/collection and column/field names to lower-case by default in sync queries (this is how Postgres also behaves). To preserve the case, surround the names with double quotes, for example:SELECT *, the original case is preserved for the returned columns/fields.
Client-Side Case
On the client side, the case of table and column names in the client-side schema must match the case produced by the sync query exactly. For the above example, use the following in Dart:SELECT description FROM todos WHERE listid = ?.
Operations (PUT/PATCH/DELETE) are stored in the upload queue using the case as defined in the schema above for table and column names, not the case used in queries.
As another example, in this sync query: