I'd like to get some insights into how to implement a PL/Parrot for
PostgreSQL. For those unfamiliar, PostgreSQL is an extensible DBMS
which allows people to plug in procedural languages. I'm thinking
that Parrot could provide a way to plug in lots and lots of
these--including Perl6--with minimal repeated effort.
So far, I have two initial high-level ideas for a design of such a
thing:
* Embedding Parrot in C using PostgreSQL's SPI interface
http://www.postgresql.org/docs/current/static/spi.html with
wrappers around the SPI interface for each target language as
appropriate.
* Running Parrot as a separate daemon process with a communication
channel open to PostgreSQL.
If interested, please contact me.
Cheers,
D
--
David Fetter <da...@fetter.org> http://fetter.org/
phone: +1 415 235 3778 AIM: dfetter666
Skype: davidfetter
Remember to vote!
> Would it make sense to implement the PostgreSQL SPI interface as a
> set of Parrot PMC's; then ANY HLL on Parrot could use those PMC's?
> Or could the SPI be wrapped by PERL for example, and then the OTHER
> HLL's simply use the classes/objects of the PERL interface?
This is where Other People's Expertise comes in. Which is the more
generic? Of the two methods above, which way has been implemented so
far, and to what degrees of success?
I like the Parrot PMC approach because it appears to have fewer
dependencies. If somebody want's PL/Haskell, they shouldn't have to
have PL/Perl6 to get it. Then again, it may just be easier to do in
Perl6 and have other languages just deal with that.
> The information contained in this e-mail message is privileged and/or
> confidential and is intended only for the use of the individual or entity
> named above. If the reader of this message is not the intended
> recipient, or the employee or agent responsible to deliver it to the
> intended recipient, you are hereby notified that any dissemination,
> distribution or copying of this communication is strictly prohibited.
> If you have received this communication in error, please immediately
> notify us by telephone (330-668-5000), and destroy the original
> message. Thank you.
-----Original Message-----