Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: "Nicolas Cannasse" <warplayer@free.fr>
To: "Alessandro Baretta" <alex@baretta.com>, "Ocaml" <caml-list@inria.fr>
Subject: Re: [Caml-list] PostgreSQL and Ocaml
Date: Sat, 12 Oct 2002 14:05:58 +0200	[thread overview]
Message-ID: <007f01c271e7$ba06b120$55203151@warp> (raw)
In-Reply-To: <3DA6B04E.1090900@baretta.com>

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

Regards,
Nicolas Cannasse

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


      parent reply	other threads:[~2002-10-12 12:04 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-11 11:04 Alessandro Baretta
2002-10-11 11:24 ` Yang Shouxun
2002-10-11 12:31   ` Alessandro Baretta
2002-10-11 18:53 ` Chris Hecker
2002-10-13 14:35   ` Alessandro Baretta
2002-10-12 12:05 ` Nicolas Cannasse [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='007f01c271e7$ba06b120$55203151@warp' \
    --to=warplayer@free.fr \
    --cc=alex@baretta.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox