Have you consider just subclassing the DBI ? E.g., assuming prepare() needs to translate the input SQL from your "standard" syntax into the DBMS-specific syntax, you just apply the transform in your subclass's prepare(), then pass the transformed SQL off to DBI via SUPER::prepare(). The plumbing is pretty simple.
I'll take that idea under consideration, although I'm not certain it would be better than the other two options.
FYI, this whole DBI emulation thing is strictly meant to be an optional add-on for my module, to aid in porting an application. I expect that a lot of people would want to use the module using its own API, which does not take SQL strings or otherwise resemble the DBI interface at all except for some shared structural design concepts.
Thanks for your help.
-- Darren Duncan
