This email is a heads-up.

A couple months ago I announced that I was going to experiment with cross-cpan refactoring where I would update a variety of DBI wrappers to use my SQL::Routine module internally. Since then I have changed my mind and decided not to do this, largely due to the complexity of the task, including that many of the modules are regularly being updated.

Instead, I will be going ahead with a plan I had much earlier on which is to make a new Pure Perl module that is a wrapper for Rosetta that emulates DBI, probably to be named Rosetta::Emulator::DBI. Then any other programs or modules that use DBI (including all the aforementioned wrapper modules) should be able to use this as a drop-in replacement.

What will happen behind the scenes with your database instructions that didn't happen before is that their SQL strings will be completely parsed into a SQL::Routine model and then re-assembled into new SQL strings which are actually executed, assuming your actual database engine is unchanged.

The advantage to you of having interjected Rosetta into your communications with the database is that you should be able to substitute any other database engine for your original one and your application will continue to work without any changes on its part. Similarly, your application will then be able to work unchanged with storage engines that it would have never worked with before except with large changes; this includes databases that don't use SQL as their native instruction set, or for which a DBI driver doesn't exist.

I expect to have this functional with a few database products by the end of June.

As a side effect, since I am maintaining native Perl 6 versions of my modules in parallel with the Perl 5 ones, porting your applications to Perl 6 and/or Parrot later can also be assisted by using them.

Any feedback or questions or offers of assistence are welcome.

Have a good day. -- Darren Duncan

Reply via email to