Add SQLite Persistence tests#6795
Conversation
|
As a part of history queue revamping, we're planning to introduce new tables in SQL implementations and store transfer tasks, replication tasks and timer tasks in them so that we can easily introduce new categories of history tasks in the future. The schema change is not done for mysql and postgres sql because it's not prioritized. But it would be nice if we can implement the change for SQLLite. Do you mind making this change in your PR and update the SQL queries for transfer task, replication tasks and timer tasks? |
3vilhamster
left a comment
There was a problem hiding this comment.
Looks good. Looking forward to starting using this for minimal setup instead of Cassandra
I have a feeling that it will require me to adapt all other queries that I am not aware of. Would it be possible to have these changes later in another PR? SQLite is fully based on MySQL, and I wouldn't like the merge logic here and have the PR focusing only on existing queries. |
What changed?
sqlite.DBsupports its custom errorsDELETE ... ORDER BY ... LIMITquery syntax is not supported and is replaced byWITH-clause.FOR UPDATEandLOCK IN SHARE MODEsettings are not supported, however, the transaction level in SQLIte is serializable.INSERT IGNORE INTOquery syntax is not supported and replaced byINSERT OR IGNORE INTObuffered_events.idtype has been changed fromBIGINTtoINTdue AUTOINCREMENT is not supported forPRIMARY KEY BIGINTtype.Why?
SQLite storage will be used in the future as an in-memory replacement for persistence storage. The diff is a part of the project In-Memory Storage.
Previous PRs:
How did you test it?
Potential risks
New changes in MySQL persistence layer may require some changes for SQLIte version if they're not compatible with SQLIte version.
Release notes
Documentation Changes
Detailed Description
[In-depth description of the changes made to the schema or interfaces, specifying new fields, removed fields, or modified data structures]
Impact Analysis
Testing Plan
Rollout Plan