On Sun, Feb 06, 2011 at 02:39:09PM +0000, Martin J. Evans wrote:
> On 06/02/2011 13:00, Tim Bunce wrote:
> >On Sat, Feb 05, 2011 at 01:27:11PM +0000, Martin J. Evans wrote:
> >>>ok, the 3 new trace flags are in and I added macros (slight shame
> >>>you cannot use them in DBI.pm too but not a great deal).
> >I think they should be added to the ALIAS list in constant().
> >
> Which I've done but I'm not sure it you meant this was supposed to
> allow me to use them in DBI.pm as I still cannot. I don't really
> understand constant() it just seems to return the ix which I thought
> was the index number of the alias so I'm not sure what it is there
> for.

It is the 'index number' but by using the

    ALIAS:
        DBIf_FOO = DBIf_FOO

syntax you can set the index number for a specific name to a specific
value. In this case the value of the macro of that name. Kind'a cute.
So now DBIf_FOO is the name of a perl constant[*] that has the value of
the DBIf_FOO macro.

[*] These constants aren't real compile-time constants, sadly. They're
just AUTOLOADed functions that return a constant value. There are
probably better (faster and lighter-weight) ways of defining constants
in XS in modern perl versions. I've never got around to reworking this.

> >I've not tested any of the above. I'd be grateful if you could test it
> >out. t/09trace.t could be extended for that purpose. (I'm not sure how
> >much effort it would be to keep DBI::PurePerl in sync with this work.)
>
> I changed 09trace.t for new flags and it passes ok.
> 
> I don't know much about DBI::PurePerl (never used it) - it doesn't
> see to do anything with trace flags at all as far as I can see.

DBI::PurePerl mostly ducks the issue of selective tracing.
I suspect the 09trace.t tests just aren't noticing that.
Not a big issue.

Tim.

Reply via email to