[Pgpool-general] pool_add_prepared_statement: prepared statement already exists
Tatsuo Ishii
ishii at sraoss.co.jp
Tue Jan 11 11:05:42 UTC 2011
>> Oops. It seems same unportability regarding dirname(3) as
>> main.c is in
>> pg_md5.c. Can you please try including patches?
>>
>
> Hmm, still the same message with the patched md5.c
>
> 2011-01-11 10:57:46 ERROR: pid 5831: pool_init_pool_passwd: couldn't open /usr/local/etc/pool_passwd. reason: Permission denied
>> stop request sent to pgpool. waiting for termination....done.
Hmm. Can you do strace or equivalance against pgpool main process(not child)?
>> >> > Also I'm seeing a problem where a namaed
>> prepared
>> >> statement gets deallocated but pgpool thinks it
>> still exists
>> >> when my app tries to recreate it.
>> >> >
>> >> > The output of the log is here:
>> >> >
>> >> > http://www.privatepaste.com/c3068423a3
>> >> >
>> >> > Was thinking it could be something to do with
>> this
>> >> change? :
>> >> >
>> >> > http://pgfoundry.org/pipermail/pgpool-committers/2010-October/001507.html
>> >>
>> >> That change was made by Toshihiro. Toshihiro?
>> >
>> > I have tried to dig through this myself, however I hit
>> a wall when trying to figure out what the differences are
>> between a "portal" and a "prepared_statement" in the pgpool
>> code. My understanding from a purely postgres point of
>> view is that portals are related to cursors, and I'm not
>> sure how that applies to the prepared statements here.
>>
>> Does it? In my understanding "portal" is one of neccessary
>> objects to
>> process any query, regardless simple or extended. On the
>> other hand,
>> prepared statements are related to extended query only. In
>> the
>> extended query protocol, PREPARE phase produces prepared
>> statement
>> object. In the BIND phase prepared statemet is bind to
>> particular
>> portal object which should be created beforehand. EXECUTE
>> executes
>> portal, not prepared statement. Once EXECUTE done, CLOSE
>> PORTAL
>> discards portal object. But you could leave prepared
>> statement as it
>> is to re-EXECUTE the query again.
>>
>
> Ah, I understand now, that explanation really helps. When I said "my understanding" previously, perhaps my point would have been clearer if I'd said "my understanding as a postgres user, from the postgres docs".
Ok. I myself learned this fact in hard way:-)
>> Anyway according to Toshihiro, the problem is harder than
>> he
>> thought. He is working on fixing the problem right now.
>>
>
> Great, thanks.
> Glyn
More information about the Pgpool-general
mailing list