On Sun, Feb 06, 2011 at 01:17:15PM +0100, H.Merijn Brand wrote:
> > > 
> > > #   0xddlDDDrL (driver, driver-level, DBI, reserved, Level)
> > > 
> > > would be perfect in my world.
> > 
> > That's fine.
> > 
> > > l than is "level" to DBD, what "L" is to DBI
> > > 
> > > How many bits in DDDD do you think will ever be used? If we now use 2
> > > or 3, wouldn't it be better to change to
> > > 
> > > #  0xddlDDDrL ?
> > > 
> > > Which would mean that we stay 100% backward compatible (as the first D
> > > of DDDD was only reserved but never used.
> > 
> > Yeap.
> > 
> > > With this scheme, it is extremely easy for all drivers to update their
> > > docs to match DBI. Those drivers that used a level will just have to
> > > use the 'l', those that used flags will (still) have to use the dd.
> > > 
> > > We could then document the use and support of DBD_VERBOSE to
> > > automatically translate to the ddl part. If a DBD already supported
> > > $DBD_VERBOSE instead of "ddl", it will work just as it did, if the DBD
> > > updates to the new scheme (requiring DBI-1.xxx that supports it), then
> > > the "upgrade" is automatic and doesn't change a thing from the user
> > > point of view.
> > > 
> > > Am I being messy? Or does this all make sense?
> > 
> > I think it makes sense.
> > 
> > Thanks.
> 
> I'll try to come up with a complete patch soon then

I've added these to DBIXS.h:

#define DBIc_TRACE_FLAGS_MASK   0xFF0FFF00  /* includes DBD flag bits for 
DBIc_TRACE */

#define DBDc_TRACE_LEVEL_MASK   0x00F00000
#define DBDc_TRACE_LEVEL_SHIFT  20
#define DBDc_TRACE_LEVEL(imp)         ( (DBIc_TRACE_SETTINGS(imp) & 
DBDc_TRACE_LEVEL_MASK) >> DBDc_TRACE_LEVEL_SHIFT )
#define DBDc_TRACE_LEVEL_set(imp, l)  ( DBIc_TRACE_SETTINGS(imp) |= (((l) << 
DBDc_TRACE_LEVEL_SHIFT) & DBDc_TRACE_LEVEL_MASK ))

Take a look at the DBIc_TRACE(imp, flags, flaglevel, level) macro.
I wonder if it's worth adding a corresponding DBDc_TRACE(...) macro
with an extra driver_level argument. I'm not sure it's worth it,
but then I'm not sure what semantics you're looking for.

Tim.

Reply via email to