diff --git a/core/database/build.gradle.kts b/core/database/build.gradle.kts index 837e471f5..5a746f6db 100644 --- a/core/database/build.gradle.kts +++ b/core/database/build.gradle.kts @@ -56,9 +56,7 @@ kotlin { } val jsMain by getting { dependencies { - implementation(libs.sqldelight.sqljs.driver) implementation(libs.sqldelight.webworker.driver) - implementation(npm("sql.js", "1.6.2")) implementation(devNpm("copy-webpack-plugin", "9.1.0")) } } @@ -75,6 +73,7 @@ sqldelight { create("NiaDatabase") { packageName.set("com.google.samples.apps.nowinandroid.core.database") generateAsync.set(true) + dialect("app.cash.sqldelight:sqlite-3-38-dialect:2.0.1") } } } diff --git a/core/database/src/commonMain/sqldelight/com/google/samples/apps/nowinandroid/core/database/NewsResources.sq b/core/database/src/commonMain/sqldelight/com/google/samples/apps/nowinandroid/core/database/NewsResources.sq index 51d6a52d3..4676cbccf 100644 --- a/core/database/src/commonMain/sqldelight/com/google/samples/apps/nowinandroid/core/database/NewsResources.sq +++ b/core/database/src/commonMain/sqldelight/com/google/samples/apps/nowinandroid/core/database/NewsResources.sq @@ -50,14 +50,14 @@ VALUES (?, ?, ?, ?, ?, ?, ?); upsertNewsResources: INSERT INTO news_resources (id, title, content, url, header_image_url, publish_date, type) -VALUES (?, ?, ?, ?, ?, ?, ?); --- ON CONFLICT(id) DO UPDATE SET --- title = excluded.title, --- content = excluded.content, --- url = excluded.url, --- header_image_url = excluded.header_image_url, --- publish_date = excluded.publish_date, --- type = excluded.type; +VALUES (?, ?, ?, ?, ?, ?, ?) +ON CONFLICT(id) DO UPDATE SET +title = excluded.title, +content = excluded.content, +url = excluded.url, +header_image_url = excluded.header_image_url, +publish_date = excluded.publish_date, +type = excluded.type; insertOrIgnoreTopicCrossRefEntities: INSERT OR IGNORE INTO news_resources_topics (news_resource_id, topic_id) diff --git a/core/database/src/commonMain/sqldelight/com/google/samples/apps/nowinandroid/core/database/NewsResourcesTopicCrossRef.sq b/core/database/src/commonMain/sqldelight/com/google/samples/apps/nowinandroid/core/database/NewsResourcesTopicCrossRef.sq index dcaa050f8..432a87ede 100644 --- a/core/database/src/commonMain/sqldelight/com/google/samples/apps/nowinandroid/core/database/NewsResourcesTopicCrossRef.sq +++ b/core/database/src/commonMain/sqldelight/com/google/samples/apps/nowinandroid/core/database/NewsResourcesTopicCrossRef.sq @@ -1,4 +1,4 @@ -CREATE TABLE news_resources_topics ( +CREATE TABLE IF NOT EXISTS news_resources_topics ( news_resource_id TEXT NOT NULL, topic_id TEXT NOT NULL, PRIMARY KEY (news_resource_id, topic_id), @@ -7,4 +7,5 @@ CREATE TABLE news_resources_topics ( ); CREATE INDEX idx_news_resource_id ON news_resources_topics(news_resource_id); + CREATE INDEX idx_topic_id ON news_resources_topics(topic_id); diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e8fc00767..7e6b1cc3d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -161,7 +161,6 @@ compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" sqldelight-android-driver = { group = "app.cash.sqldelight", name = "android-driver", version.ref = "sqldelight" } sqldelight-native-driver = { group = "app.cash.sqldelight", name = "native-driver", version.ref = "sqldelight" } sqldelight-sqlite-driver = { group = "app.cash.sqldelight", name = "sqlite-driver", version.ref = "sqldelight" } -sqldelight-sqljs-driver = { group = "app.cash.sqldelight", name = "sqljs-driver", version.ref = "sqldelight" } sqldelight-webworker-driver = { group = "app.cash.sqldelight", name = "web-worker-driver", version.ref = "sqldelight" } sqldelight-coroutines-extensions = { group = "app.cash.sqldelight", name = "coroutines-extensions", version.ref = "sqldelight" } sqldelight-primitive-adapters = { group = "app.cash.sqldelight", name = "primitive-adapters", version.ref = "sqldelight" }