Skip to content

SQLite SaveChanges: Use RETURNING clause #24835

@bricelam

Description

@bricelam

SQLite 3.35.0 added the RETURNING clause to INSERT, UPDATE, and DELETE statements. Currently, the update pipeline uses SQL like this to propagate changes...

INSERT INTO "Sample" ("MaxLengthProperty", "Name", "RowVersion", "AdditionalDetails_Name",
    "AdditionalDetails_Value", "Details_Name", "Details_Value")
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6);

SELECT "Unique_No"
FROM "Sample"
WHERE changes() = 1 AND "rowid" = last_insert_rowid();

...but it could be updated to this after the SQLitePCLRaw bundle is updated.

INSERT INTO "Sample" ("MaxLengthProperty", "Name", "RowVersion", "AdditionalDetails_Name",
    "AdditionalDetails_Value", "Details_Name", "Details_Value")
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6)
RETURNING "Unique_No";

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions