The following changes are implemented for both db-sqlx-postgres and
Stores gist metadata with unique index on gists_gists.public_id for fast
Stores comment metadata
Stores gist privacy: sqlx currently doesn't have support Postgres
enums(ref: https://github.com/launchbadge/sqlx/issues/1171), so storing
possible privacy values as references from this table.
This table shouldn't be mutated during runtime. Possible values are
already recorded in database during migrations. All runtime operations
on this table must only take references.
Each implementation of GistDatabase also includes a method called
privacy_exists, which is called during tests to ensure that
migrations are successful.
Gist lookups combines data from gists_users, gists_gists and
gists_privacy. This SQL view boots performance(I think?). At any rate,
it is much nicer to work with.
Database indexes are i64 in SQLite while i32 in Postgres
- db-core: defines base database traits that are required for gists
- db-sqlx-postgres: implements db-core for postgres flavor of the sqlx
- db-sqlx-sqlite: implements db-core for sqlite flavor of the sqlx