Darren Duncan wrote: >1. One effort, as seen to some degree on perl6-language@perl.org and >#perl6 @ chat.freenode.net, is to improve and/or adapt the data types >and operators built into Perl 6 itself so that you can easily do >natively in Perl 6 the same sorts of things that you would do with a >separate relational database product. > >This centers on one being able to use and/or easily create Perl 6 >Roles for things like Tuples and Relations, that a relational >database is founded on, as well as associated operators like >project(), restrict(), extend(), join(), summarize(), union(), >difference(), group(), rename(), and so on. Such as these are the >building blocks of all types of RDBMS select queries and DML. > >Done properly, an in-RAM relational database can be on one hand just >as simple to use as in memory hashes or arrays, or a usual persistent >one could be as easy to use as DBM tied hashes. Since you're doing >this in Perl itself, there is no impedence mismatch at all, and you >can use all your Perl classes and operators directly with your data. > >
While I think this is probably out of scope for a new DBI, all the coolest languages are doing this. Eg, AllegroCache for LISP: http://www.franz.com/products/allegrocache/ Another is Erlang's mnesia http://www.erlang.se/doc/doc-5.0.1/lib/mnesia-3.9.2/doc/ >If you look at the Pugs repository, I'm making a prototype of desired >functionality / interface in the ext/Relation/ subdirectory. > >2. My other effort is my Perl implemented Rosetta DBMS, which is >more arms length in that using it is like using a typical database is >through DBI, but that it parses its own queries and utilizes >swappable back-ends, whose native language (usually SQL) it >translates its queries to. Rosetta works like a traditional DBMS you >access through DBI, but that it typically uses other DBMSs behind the >scenes, giving you database language portability between them. This >in-progress work is on CPAN as its own distro. > >3. Now, neither of my two efforts are the same as the current DBI in >which you write queries in the native dialect of the back end store >and it just passes them through. I assume that this dbi2 or dbdi >group still plans to deliver such a thing when the time is right, >since users like things that are familiar. > >4. For people that want to help where something will have the >greatest impact, I suggest exploring ways that DBMS functionality can >occur directly in Perl 6 itself, as I see that is where a true >innovation and usefulness lies. > >-- Darren Duncan > >