Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.databases.postgresql > #772

Re: Anyone here do anything with libpq?

From Rainer Weikusat <rweikusat@talktalk.net>
Newsgroups comp.databases.postgresql
Subject Re: Anyone here do anything with libpq?
Date 2017-05-15 16:38 +0100
Message-ID <871srq6sfx.fsf@doppelsaurus.mobileactivedefense.com> (permalink)
References <P6jSA.83362$qj5.21666@fx39.iad>

Show all headers | View raw


DFS <nospam@dfs.com> writes:
> https://www.postgresql.org/docs/9.6/static/libpq.html
>
> <quote>
> PQclear
> Frees the storage associated with a PGresult. Every command result
> should be freed via PQclear when it is no longer needed.
>
> void PQclear(PGresult *res);
>
> You can keep a PGresult object around for as long as you need it; it
> does not go away when you issue a new command, nor even if you close
> the connection. To get rid of it, you must call PQclear. Failure to do
> this will result in memory leaks in your application.
> </quote>
>
> 'when it is no longer needed' sounds like it can be cleared once, at
> the end of the script.

There seems to be some kind of fundamental misunderstanding about the
nature of 'a result set' here. Specifically,

PGresult *res;

is a C pointer to a PGresult (structure) and in order to avoid memory
leaks, the result this pointer points to has to be freed before the
pointer is overwritten aka reused.

There's no need to free the result if the pointer won't be reused, IOW,
if the application is going to end next, anyway.

Back to comp.databases.postgresql | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Anyone here do anything with libpq? DFS <nospam@dfs.com> - 2017-05-15 10:41 -0400
  Re: Anyone here do anything with libpq? Rainer Weikusat <rweikusat@talktalk.net> - 2017-05-15 16:38 +0100
    Re: Anyone here do anything with libpq? DFS <nospam@dfs.com> - 2017-05-16 10:45 -0400
      Re: Anyone here do anything with libpq? Rainer Weikusat <rweikusat@talktalk.net> - 2017-05-16 20:52 +0100
  Re: Anyone here do anything with libpq? Robert Klemme <shortcutter@googlemail.com> - 2017-05-15 19:54 +0200
    Re: Anyone here do anything with libpq? DFS <nospam@dfs.com> - 2017-05-16 14:01 -0400
      Re: Anyone here do anything with libpq? Robert Klemme <shortcutter@googlemail.com> - 2017-05-16 23:04 +0200
      Re: Anyone here do anything with libpq? George Neuner <gneuner2@comcast.net> - 2017-05-17 08:40 -0400

csiph-web