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: 2002-10-11 (10:54)
From: Alessandro Baretta <alex@b...>
Subject: [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.

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.  :)


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