Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?) - Mailing list pgsql-interfaces

From Dominic Mitchell
Subject Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)
Date
Msg-id 3ED766F0.2070707@semantico.com
Whole thread Raw
In response to Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)  (Tim Bunce <Tim.Bunce@pobox.com>)
Responses Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)
List pgsql-interfaces
Tim Bunce wrote:
> On Fri, May 30, 2003 at 10:20:11AM +0100, Dominic Mitchell wrote:
>>See, I told you I wasn't an XS guru.  :-)
>>
>>Actually, I looked at this, but my limited C and DBI skills couldn't 
>>work out a) what the required handle was (probably dbh)
> 
> 
> Just whatever handle was used to call the method that's generating the warning.
> 
> 
>>and b) how to pass that into the PQsetNoticeProcessor function as data
>>and get it out again.
> 
> 
> Ah, different issue. For that I'd say if DBIc_WARN(imp_xxh) isn't true
> then disable the PQsetNoticeProcessor function.

Well, we're calling PQsetNoticeProcessor[1], from inside dbd_db_login, 
so I should be able to pass in imp_dbh as the "arg" argument.  The bit 
that I wasn't sure about before was what to cast it to in order to 
retrieve it from a void *.

>>I'll happily take another look though, now that it's been brought up as 
>>desirable.
> 
> 
> Actually I'd misunderstood the circumstances of the warn (not reading
> your message carefully enough). For notice messages generated by
> the database server they'll soon(ish) be a $h->{HandleEvent} = sub { ... }
> hook that should be used.

How will that work?  Is that for any sort of asynchronous message from 
the database?

> But that'll bring you back to needing some way for the PQsetNoticeProcessor
> function to get at the handle data it'll need to pass to the HandleEvent
> hook. The PQsetNoticeProcessor API ought to allow you to some way to do that.

It does, I just couldn't figure it out in the 30 minutes I spent looking 
at it.  I need to go back and spend more time with the docs and less 
being lazy.  :-)

-Dom

[1] Damn mozilla for not being emacs[2].  I want dynamic-abbrevs!
[2] Or vim.  That does it too.



pgsql-interfaces by date:

Previous
From: Tim Bunce
Date:
Subject: Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)
Next
From: Tim Bunce
Date:
Subject: Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)