|There's more than one way to do things|
Ahhh... understand now. You're right, the DB specific module is a bit hard to extend to anything apart from MySQL. Not even a proper factory class which is what I assumed. Eww...
If you're feeling nice (and have the time) I'd patch the main module to cope with multiple SQL statements and send the patch to the module author along with your new and funky DBIx::TextIndex::pg extension.
If you can't spare the time, drop a line to the author anyway so they know there's a problem (it's the only way it they get fixed :-)
If you're into a evil hack type solution take a look at PadWalker, which can access lexical vars in calling subroutines.
Alternatively I think you could subvert the intent of the DBIx::TextIndex::whatever methods and actually run the SQL there. You're passed $self so you have access to the database handle. This would probably be excessively evil tho :-)
In reply to Re^3: How to override methods which use my() variables?