Re: Extract SQL-Engine basics from DBD::File

Tim Bunce <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
On Thu, May 27, 2010 at 01:05:05PM +0200, H.Merijn Brand wrote:
> On Thu, 27 May 2010 09:53:02 +0000, Jens Rehsack
> <[email protected]> wrote:
> 
> > Hi developers,
> > 
> > during refactoring of DBD::File and new wishes (e.g. SQL_IDENTIFIER_CASE
> > from Martin Evans, getinfo() support, ...) and my own try of a pure-perl
> > DBD for system tables (DBD::Sys) I see many common code.
> > 
> > I would like to extract the common code into a base class DBD - maybe
> > named DBD::SQLPerl (placed SQL in from for private methods and attributes
> > naming - the should have the prefix "sql_").
> > 
> > I know at least two additional DBD's which could benefit from that:
> > - DBD::Google from Darren Chamberlain (I don't know if he is subscribed
> >    to [email protected])
> > - DBD::Sys from me
> > 
> > If there are more, it would be great to know about them.
> 
> I do have no objections to refactoring common code into a new module.
> I've got no opinion (yet) for the name(space) of that module.
> 
> What I would like to see though, before we end up in quicksand, is to
> first `finish' the f_meta work, so DBI would at least be releasable
> again. Call me conservative, but that would make me happy.

Agreed. Let's work towards a stable 1.612 release first.

On Thu, May 27, 2010 at 12:01:39PM +0000, Jens Rehsack wrote:
> 
> >What I would like to see though, before we end up in quicksand, is to
> >first `finish' the f_meta work, so DBI would at least be releasable
> >again. Call me conservative, but that would make me happy.
> 
> Sure, but I would favour a development release over a real release.

To that end, I've just uploaded DBI-1.611_90.

(Also, can https://rt.cpan.org/Public/Bug/Display.html?id=56561
be closed?)

> I want to add some more test (DBD::File, DBD::DBM) and some documentation
> how to implement DBD'S based on DBD::File as well as new DBD::SQLPerl.
> 
> And I'd like to add a link to http://dbi.perl.org/support/ (section:
> "CREATING A NEW DRIVER").

That's great. Thanks. I'd like to make a release sometime next week.

On Thu, May 27, 2010 at 12:35:59PM -0700, Darren Duncan wrote:
> 
> I had already been thinking of this need for awhile, but in that
> context it would have been a utility module, say with "common" in
> its name or something.
> 
> Unless there is already a precedent otherwise, I recommend leaving
> the DBD::* namespace for actual DBI drivers, and utilities go in
> some other namespace, though perhaps DBD::Util::* or something.

I'd like to keep the DBD::* namespace reserved for actual drivers.
The DBI::DBD* and DBI::DBD::* namespaces would be suitable.
Perhaps DBI::DBD::PerlBase (for 'perl base class').

> The choice may also be affected by whether the new module is meant
> to be subclassed by a DBI module or just "used" ... the latter makes
> more sense if it would be used by multiple component classes like
> the driver and statement handles, unless the utility has one for
> each of those, but I wouldn't make it a subclassing situation.

Certainly the import/mixin vs subclass aspect of the design needs
some exploration. There might be a role for both a DBI::DBD::PerlBase
class plus a DBI::DBD::Utilities module.

Tim.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.