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

Decouple outdated SQLite3 Btree dependency #22

Open
ComFreek opened this issue Nov 29, 2017 · 1 comment
Open

Decouple outdated SQLite3 Btree dependency #22

ComFreek opened this issue Nov 29, 2017 · 1 comment

Comments

@ComFreek
Copy link

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.

@ComFreek
Copy link
Author

ComFreek commented Dec 9, 2017

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 subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant