[pgpool-general: 1007] Re: using prepared statements when memory_cache_enabled=on

Tatsuo Ishii ishii at postgresql.org
Sat Sep 15 07:37:04 JST 2012


> On Fri, Sep 14, 2012 at 3:09 PM, Tatsuo Ishii <ishii at sraoss.co.jp> wrote:
>>> On Thu, Sep 13, 2012 at 6:35 PM, Tatsuo Ishii <ishii at postgresql.org> wrote:
>>>>> pg_* functions.  Stuff like pg_prepare, pg_exec, pg_query.
>>>>
>>>> Can you show us pg_prepare example? I'm interested in what statement
>>>> names you are using.
>>>
>>> pg_prepare($db, $preparedStatementKey, "SELECT
>>> id,pass,fail,filtercount,info,current_status,last_update,os,arch,branch,gpu,build_type,subtest,osversion
>>> FROM cudasmoke WHERE (last_update > $1 AND last_update < $2) AND os=$3
>>> AND arch=$4 AND branch=$5 AND build_type= $6 AND subtest=$7 AND
>>> osversion=$8 AND gpu=$9 ORDER BY last_update DESC LIMIT 1" )
>>
>> So what's the content of $preparedStatementKey?
> 
> Its a unique identifier string for the prepared statement, comprised
> of the concatenated sha1sum and md5sum of the prepared statement.
> 
> So it ends up looking something like this:
> pg_execute($db,a1a3a2f461a0efc2eee2f60f940df6b77eb552f9f5a985165c3ab1665384fa9cce8b1b62,"SELECT
> id,pass,fail,filtercount,info,current_status,last_update,os,arch,branch,gpu,build_type,subtest,osversion
> FROM cudasmoke WHERE (last_update > $1 AND last_update < $2) AND os=$3
> AND arch=$4 AND branch=$5 AND build_type= $6 AND subtest=$7 AND
> osversion=$8 AND gpu=$9 ORDER BY last_update DESC LIMIT 1);

The statement name is 72 byte long. This is interesting because
PostgreSQL (and pgpool) does not suppose that statement name is longer
than 64.  Not sure how this affects to the problem though.

src/include/pg_config_manual.h:
/*
 * Maximum length for identifiers (e.g. table names, column names,
 * function names).  Names actually are limited to one less byte than this,
 * because the length must include a trailing zero byte.
 *
 * Changing this requires an initdb.
 */
#define NAMEDATALEN 64
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp


More information about the pgpool-general mailing list