Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] PostgreSQL and Ocaml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Nicolas Cannasse <warplayer@f...>
Subject: Re: [Caml-list] PostgreSQL and Ocaml
> I have found an excellent client library to access
> PostgreSQL databases from Ocaml applications. This I have
> put to use with excellent results in the development of a
> web application, together with Netcgi. However, most of the
> logic of my program is written and stored in the database as
> sql and pl/pgsql stored procedures. While SQL is overall a
> very good language to express computations in relational
> algebra, it is very weak (pratiquement, c'est nul) in
> general algorithms, so for anything more complex than a
> query one has to resort to pl/pgSQL, which is as powerful as
> an ordinary imperative language with the added bonus of
> having SQL constructs for relational algebra. What it lacks
> is type safety. After having come in contact with OCaml, I
> can hardly live with a language with no type safety.

Few months ago I investigated the ability to write UDF ( User Defined
Function ) for MySQL under Win32. But it seems like this feature is only
available under *Nix versions of MySQL. The main points are the same. First
you write a C function with specific API in order to access fields and
values in a given row. Then you compile the C into a server-side DLL and
register it under MySQL with a specific SQL command which add a new SQL
keyword binded to your function.

Is there any differences with PortgreSQL ?
If only the API calls differs, should I advise you to consider having an
"opened API" design ( in order to support both PostgreSQL, MySQL, and maybe
other systems... )

> Now I wonder: has nobody written a PostgreSQL server-side
> binding for Ocaml? I have searched Google on the subject,
> but found nothing relevant.
> If nobody has, would anyone like to join me in the project
> of writing an add-in for PostgreSQL supporting Ocaml stored
> procedures? I have little experience in this, but it should
> not be too difficult: it should be a matter of writing a C
> dll which, upon initialization, starts a bytecode compiler
> and interpreter, and has callbacks through with which the
> server can request the compilation of a text string or the
> execution of a bytecode cmo blob. Although I think I might
> succeed by myself, I'd still prefer to work in company, if I
> have to.  :)

Although I don't have dev time for it, I would agree to share ideas and
point of view with you about this subject.

Nicolas Cannasse

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: