Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.