Skip to content
This repository was archived by the owner on Jul 26, 2018. It is now read-only.
This repository was archived by the owner on Jul 26, 2018. It is now read-only.

Decouple outdated SQLite3 Btree dependency #22

Open

Description

@ComFreek

Right now, the module src/runtime/c/sg includes a custom version (namely sqlite3Btree.{c,h}) of an outdated snapshot of SQLite's source.
These files mention functions such as sqlite3StrICmp which are nowhere defined and are thus leading to undefined reference errors; at least when building for Windows which does not allow unknown references in shared libraries afaik. See also https://groups.google.com/forum/#!topic/gf-dev/BkYwEl0SE00 where the exact issued build instructions can be found.

I tried replacing sqlite3Btree.{c,h} by the most recent SQLite3 amalgamation files, however, the internal API of sqlite3Btree changed.
For example, the old sqlite3BtreeInsert's function signature contained in this repository looks like

int sqlite3BtreeInsert(BtCursor*, const void *pKey, i64 nKey,
const void *pData, int nData,
int nZero, int bias, int seekResult);

but the current one (as found in the amalgamation sqlite3.c) looks like

SQLITE_PRIVATE int sqlite3BtreeInsert(BtCursor*, const BtreePayload *pPayload,
                       int flags, int seekResult);

As SQLITE_PRIVATE also indicates, the Btree API was never meant to be stable and publicly accessible.

Activity

  1. ComFreek commented on Dec 9, 2017

    @ComFreek
    Author

    Follow-up: I got a cross-compilation from Ubuntu to Windows working by manually defining all missing functions (i.e. copy-pasting from the SQLite source until all references were saturated):

    Still, I hope this issue gets fixed since my hacky approach probably introduced a handful of bugs and logical inconsistencies in addition to those already present in the outdated SQLite source contained in this repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions