Re: How to properly fix memory leak

Поиск
Список
Период
Сортировка
От Igor Korot
Тема Re: How to properly fix memory leak
Дата
Msg-id CA+FnnTx5QBqs2WFAu+Bznv2z73i+j8aZXGDMB0ocE=Wb6hy4eA@mail.gmail.com
обсуждение исходный текст
Ответ на How to properly fix memory leak  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-general
Hi, David,

On Fri, Apr 25, 2025 at 11:55 PM David G. Johnston
<david.g.johnston@gmail.com> wrote:
>
> On Friday, April 25, 2025, Igor Korot <ikorot01@gmail.com> wrote:
>>
>>
>> And the error case was handled correctly, right?
>
>
> Seems like answering that requires knowing what the query is or can be.  I also have no idea what idiomatic code
lookslike.  Though, I’d probably use PQresultErrorMessage and check affirmatively for the tuples and error cases and
havea final else should the status be something unexpected. 

Understood.

Below is the full function:

[code]
int PostgresDatabase::PopulateTablespaces(std::vector<std::wstring> &errorMsg)
{
    int result = 0;
    std::wstring errorMessage;
    std::wstring query = L"SELECT * FROM pg_tablespace;";
    auto res = PQexec( m_db, m_pimpl->m_myconv.to_bytes( query.c_str()
).c_str() );      /* ask for binary results */
    if( PQresultStatus( res ) != PGRES_TUPLES_OK )
    {
        auto err = m_pimpl->m_myconv.from_bytes( PQerrorMessage( m_db ) );
        errorMsg.push_back( L"Update validation table: " + err );
        result = 1;
    }
    else
    {
        for( int i = 0; i < PQntuples( res ); i++ )
        {
            auto temp1 = m_pimpl->m_myconv.from_bytes( PQgetvalue(
res, i, 1 ) );
            m_tablespaces.push_back( temp1 );
        }
    }
    PQclear( res );
    return result;
}
[/code]

Thank you.

>
> David J.
>



В списке pgsql-general по дате отправления: