mattn / mattn/go-sqlite3

Support for SQLite session extension ?

Open
#825 1 comment 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
9.2k
Forks
1.2k
Avg merge
19m
Merged PRs (30d)
4

Description

I learned about the session extension from https://github.com/crawshaw/sqlite. The SQLite documentation says:

The session extension provide a mechanism for recording changes to some or all of the rowid tables in an SQLite database, and packaging those changes into a "changeset" or "patchset" file that can later be used to apply the same set of changes to another database with the same schema and compatible starting data. A "changeset" may also be inverted and used to "undo" a session.
...
In other words, the session extension provides a facility for SQLite database files that is similar to the unix patch utility program, or to the "merge" capabilities of version control systems such as Fossil, Git, or Mercurial.

This enables, for example, synching the database between different applications over the network in an efficient way (only the delta, not the whole db).

To work, the session must be created. This makes the extension start recording the changesets.

I was wondering if you see value in supporting this extension, and if from a technical point of view this can be done while still being compatible with database/sql.

Personally, I would love this support :-)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by reviewing the driver's database/sql integration and the SQLite session extension documentation linked in the issue; determine whether session creation and changeset operations can be exposed compatibly, with an agreed API and implementation scope as the definition of done.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, sqlite
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.