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 по дате отправления: