alternatives to Firebird: sqlite [was: Firebird doesn't support MSVC 2015]

Lionel Elie Mamane lionel at mamane.lu
Tue Mar 8 13:32:49 UTC 2016


On Mon, Mar 07, 2016 at 02:32:05PM +0200, Noel Grandin wrote:
> On 2016/03/07 2:11 PM, Lionel Elie Mamane wrote:

>> A few examples of how SQLite differs from the SQL standard (be it de facto
>> or de jure standard) in quite deep, fundamental ways:

>>  * lack of other datatypes than "integer", "real" (float), "string of characaters"
>>    and "string of bytes": the basic ones are dates, times, timestamps.

>>  * lack of datatype checking; one can insert "noel" in a column of
>>    type "integer"

>>  * type attached to value, not to column

> That is true, but we could implement basic checking of our own on
> top of that,

Maybe we could even convince SQLite to do the checking by
systematically inserting "CHECK" constraints on the columns.

Again, all these "yes, we can do this ourselves" brings me back to my
impression of "we can build a DBMS like we need on top of SQLite, but
SQLite is not it". If someone wants to build their own "DBMS like we
need" on top of SQLite, and MAINTAIN IT, then sure, we can use that in
LibreOffice. It can even be called "the SQLibreOfficeIte, or SQLOite
or some combination of LibreOffice and SQLite.

> or just ignore it, and rely on the user getting it right most of the
> time (which they normally do). And when they don't, it is a rather
> soft failure mode in SQLite.

No, I don't think so, because lack of data canonicalisation leads to
*wrong* *results* in queries.

See e.g. https://bugs.documentfoundation.org/show_bug.cgi?id=38811#c21
for examples around dates, times and timestamps.

> I suppose we can just keep limping along with our current state of
> affairs, (...) But it would be nice to upgrade to something a
> little more modern, and Firebird is not really working out for us,
> and what other options do we really have?

Well... In some way, for a whole class of users, it does not matter
much since they use external databases anyway. We could even axe the
embedded database. In another way, the concept of an external database
flies over the head of many users, so we lose a whole class of
users. Plus there are good uses for the "just copy this one file and
you get everything" of an embedded database. In that "other way",
"limping along" is a slow, agonising death. *Anything* that works and
is maintained is better than the current situation: HSQLDB2, H2, a
Firebird that compiles with recent compilers (and will continue to),
...

At this point, I'd say, even more strongly than usual: the one that
will do it will decide. Upgrading to a modern Java-based database
would maybe not be that bad after all...

-- 
Lionel


More information about the LibreOffice mailing list