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

Wols Lists antlists at
Thu Mar 10 01:27:46 UTC 2016

On 09/03/16 18:06, Lionel Elie Mamane wrote:
> On Wed, Mar 09, 2016 at 06:59:08PM +0100, Lionel Elie Mamane wrote:
>> On Tue, Mar 08, 2016 at 08:44:03PM +0000, Wols Lists wrote:
>>> On 08/03/16 13:32, Lionel Elie Mamane wrote:
>>>> 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...
>>> Sounds like I'd better get my finger out then!
>>> IF I can get the basics in place (and to be honest it is a big if),
>>> are other people prepared to muck in and help with the bits I can't
>>> do?
>> Now, specifically, duckduckgo-ing for "Pick" does not bring the
>> expected results, so if you could give me some links to see what you
>> are talking about? Thanks.
> Found
> which sent me to "MaVerick" which led me to
> I see that it can act as datastore for MySQL and PostgresSQL; this
> gives the impression that it is a datastore, but there is no SQL
> layer. What do you intend to use as SQL layer? Develop one?
Actually, Pick is a full-blown environment - "the database is the
computer". So it's a hell of a lot more than just a datastore. And be
careful, you might get me on to a full-blown advocacy rant ... :-) I'll
try and keep it short, but Relational Technology (ie a First Normal Form
database) is pretty much a con trick. It's a two-dimensional *MODEL*
store, not a *DATA* base. imnsho, a First Normal Form database is in
*serious* breach of Einstein's dictum "Make things as simple as
possible, BUT NO SIMPLER".

Pick, now generically known as MultiValue, is an n-dimensional database,
and can be shown to be a proper superset of relational. As a result it
is smaller, faster, and can do anything relational can do. It's quite
similar to (but a very different heritage from) Cache. And I know
bashing Oracle is a sport, but my favourite Pick war story is a port
from Pick (a variant known as UniVerse) to Oracle. After 6 months hard
work, the Oracle consultants proudly told management that a complicated
query was 10% faster on the Oracle system, than the old UniVerse system.
That is, they were proud until the UniVerse sysadmin said "you mean your
twin Xeon 800 machine is only 10% faster than my Pentium 90?".

So. My plans. Implement a string class that implements the dynamic
arrays that Pick is built on. Implement the data store - a hashed
key-value setup. I didn't realise how widely linear hashing was used
until recently, but it's the technology behind Sleepycat, behind hashed
variables in Perl, and probably a fair few other places as well.

On top of that, an integrity layer that enforces datatypes. This isn't
part of standard multi-value, but imho is a massive omission. It'll be
optional to switch it on, but if enabled it will ensure datatype integrity.

On top of that we'll need a Pick shell, and a SQL shell.

I'll then need a Basic compiler. A lot of stuff gets done in the
database - should be done there - and it's needed for that. That's where
I came a cropper last time I tried. And I got the impression StarBasic
isn't being actively cared for - maybe these two could get together :-)

I know Pick isn't the easiest of topics to google for, but some links
for reading ...

The wikipedia page (what else :-)

A bit of a critique of Relational vs MultiValue (written by yours truly)

A website about Pick. Note that the second like is again by yours truly...

Rocket Software now owns most of the variants of Pick out there. They
bought U2 off of IBM (which I strongly suspect IBM sold because it was
growing so fast it threatened to swamp their DB2 division - when they
sold it it was 1/3 of the division, and it was reportedly growing at
double figures per annum ...) They then bought out the original Pick

Then a couple more snippets - I don't know if you've heard of the data
warehouse system called DataStage - owned by IBM. They acquired it when
they bought U2, and they kept it when they sold U2 off. It was based on
UniVerse, a MultiValue system. A large chunk of the banking system
software market is owned by a company called Temenos, and it runs on
jBase, another MultiValue system. If you happen to see a green screen in
a travel agents, this is almost certainly the original Pick - it pretty
much owned that market - and I strongly suspect it's still underneath
modern gui software.

So while you may not see a lot of Pick, there's actually an awful lot
out there. And if you follow my links, you'll see I'm pretty
comtemptuous of relational TECHNOLOGY. I actually think the maths is
good, but FNF databases? No.

To put it bluntly, I think a pure relational database is 50% good solid
maths, and 50% cargo-cult ju-ju science ... :-)

(Note that I'm not aware of any modern pure relational database. I know
PostgreSQL implements arrays, and I think pretty much any modern
relational database does likewise)

I'm only too happy to go into this deeper, but don't say I didn't warn
you if this turns into an advocacy fest ...


More information about the LibreOffice mailing list