[Erlang] ODBC interface to Mnesia

Bruce Fitzsimons Bruce@REDACTED
Tue Aug 31 16:51:10 CEST 1999

Hi Håkan,

Once again, thanks for your input. It is very valuable and I appreciate your

In addition to the work on the Mnesia interface side, there is a significant
amount of work on the PC client side in supporting ODBC. Did you consider
that in your estimates?

But...it appears that if I spend some time reverse engineering it, I can use
the MyODBC ODBC driver. This driver (source) is Public Domain, and is used
for the ODBC interface to MySQL.

So that would be the client side of the interface made a lot easier - its
more a matter of cutting bits out and providing "default" responses to some
ODBC commands that can't be supported.

This driver sends commands over through tcp/ip ports between the client and
server, so it should be easy to replicate the server side in Erlang.

> Back in 1997, I did some estimations of the work needed in order to
> implement a foreign language interface to Mnesia. I think that the
> work could be divided in several phases, starting with "Mnesia SQL".

On the Mnesia/server side, I am expecting to only provide "Mnesia SQL"
conformance. Changing Mnesia to support the full SQL-92 spec is beyond my
scope and abilities.

It's also a can of worms I'd rather not open. Even some basic commands about
creating and deleting  databases can't be easily replicated in Mnesia...

Being honest, I'd be thrilled just to get "SELECT * FROM <table>" working
over ODBC.

Its probable that a lot of standard ODBC client applications won't like a
partial implementation of ODBC/SQL, but that doesn't matter for applications
that are written with Mnesia SQL in mind, and it provides a base for

> The actual figures will of course depend a lot of the ambition
> level (conformance & quality) and of the skill of the implementor.

Thanks for the reality check and helping me limit the scope. I am aware that
this is a lot of effort, but I think it is time well spent.

I was reading the Masters Thesis about the SQL parser in Erlang. Some

1. Was it finally possibly to get the full syntax compiled and working, or
are you still stuck with a cut down version?
2. Is it possible to get a copy of the source under the EPL?


More information about the erlang-questions mailing list