sqldelight icon indicating copy to clipboard operation
sqldelight copied to clipboard

FTS4 "rebuild" command is failing

Open seankim-android opened this issue 2 years ago • 0 comments

SQLDelight Version

1.5.1

Operating System

Android

Gradle Version

7.2

Kotlin Version

1.5.31

AGP Version

7.0.3

Describe the Bug

Hello. I have an FTS4 setup similar to this.

CREATE TABLE sample(
    id TEXT NOT NULL UNIQUE,
    name TEXT NOT NULL UNIQUE PRIMARY KEY,
    nameLocalized TEXT
);

CREATE VIRTUAL TABLE sample_fts USING fts4(
    content="sample",
    tokenize=unicode61 "remove_diacritics=0" "tokenchars=+",
    name TEXT NOT NULL UNIQUE PRIMARY KEY,
    nameLocalized TEXT
);

-- region Failing
rebuildFtsIndex:
INSERT INTO sample_fts(sample_fts) VALUES('rebuild');
-- endregion

Adding INSERT INTO sample_fts(sample_fts) VALUES('rebuild'); fails the build.

I believe this is a valid SQL statement. Could someone please take a look? 🙏

source(7.2. The "rebuild" command): https://www.sqlite.org/fts3.html#*fts4rebuidcmd

Note: Sorry about the duplicate. I've opened the same issue in https://github.com/AlecStrong/sql-psi/issues/298 because I wasn't sure where this issue should belong. Would you mind closing the one in the wrong place?

Stacktrace

Stack trace:
/Users/sean.kim/Projects/slack-android-ng/services/persistence/persistence-org-db/src/main/sqldelight/slack/persistence/emoji/Sample.sq line 15:0 - Cannot populate default value for column name, it must be specified in insert statement.
15    INSERT INTO sample_fts(sample_fts) VALUES('rebuild')
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Execution failed for task ':services:persistence:persistence-org-db:generateReleaseOrgDatabaseInterface'.
> A failure occurred while executing com.squareup.sqldelight.gradle.SqlDelightTask$GenerateInterfaces
   > Generation failed; see the generator error output for details.

Gradle Build Script

No response

seankim-android avatar Nov 05 '21 16:11 seankim-android