Re: Lifetime of PQexecPrepared() returned value

From: Igor Korot <ikorot01(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Lifetime of PQexecPrepared() returned value
Date: 2017-08-05 17:46:20
Message-ID: CA+FnnTxPr6fmUqtVjgcm5p_dqs4TQMro_9UCVyg2g+dbyRY6xw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi, guys,

On Fri, Aug 4, 2017 at 5:01 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Igor Korot <ikorot01(at)gmail(dot)com> writes:
>> I have a following piece of code:
>
>> [code]
>> PGresult *res = PQexecPrepared();
>> status = PQresultStatue( res );
>> if( status == PGRES_TUPLES_OK )
>> {
>> for( int j = 0; j < PQntuples( res ); j++ )
>> {
>> char *foo = PQgetValue( res, j, 0 );
>> char *bar = PQgetValue( res, j, 1 );
>> MyObject *obj = new MyObject( foo, bar );
>> if( SetAdditionalProperties( obj ) )
>> {
>> result = 1;
>> break;
>> }
>> }
>> PQclear( res );
>> }
>
> What I'm wondering about is whether the MyObject constructor is making
> copies of the strings it's passed, or whether it thinks it can just hold
> onto those pointers. The pointers would be dangling once you do PQclear.
> Now, if the MyObject has gone out of scope and been destroyed, which
> this coding suggests would happen, then that shouldn't matter ... but
> maybe the pointers got copied to somewhere longer-lived? Anyway, there's
> nothing visibly wrong with what you showed us, so the problem is somewhere
> else.

I need to deeply apologize.
I cam home yesterday, look at the code again and saw the PQclear()
call in the if()
block.
However it leads to another question - should PQclear set the pointer to NULL?

Sorry for the noise once again and thank you for reading.

>
> regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Igor Korot 2017-08-05 18:01:10 Re: Invalid byte sequence for encoding UTF-8 0xc3\n
Previous Message Raymond O'Donnell 2017-08-05 16:38:39 Re: Type cast in PHP PDO (does not work like in Java?)