В настоящее время (v1.2.1) не поддерживается функция приостановки для запросов SqlDelight, однако вы можете использовать объект Coroutines Flow, что еще лучше. Для этого вам нужно добавить библиотеку расширений сопрограмм в своем приложении:
dependencies {
implementation "com.squareup.sqldelight:coroutines-extensions:1.2.1"
}
Затем превратить ваш запрос в следующее:
val allItems: Flow<List<Item>> =
itemQueries.selectAll()
.asFlow()
.mapToList()
Этот поток генерирует результат запроса и выдает новый результат каждый раз, когда база данных изменяется для этого запроса.
Затем вы можете .collect{}
результаты внутри области сопрограмм.