From: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
---|---|
To: | "Kato, Sho" <kato-sho(at)jp(dot)fujitsu(dot)com> |
Cc: | Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Add function to release an allocated SQLDA |
Date: | 2018-06-18 05:41:45 |
Message-ID: | CAEepm=1jxusHTggg+k+0pdjwOMPakR1QHp=oDU5TV+BFX3VWkg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Jun 13, 2018 at 4:29 PM, Kato, Sho <kato-sho(at)jp(dot)fujitsu(dot)com> wrote:
> I add a function called ECPGfreeSQLDA() becasue there is no API for releasing the SQLDA stored the result set.
Hello Kato-san,
Thank you for sending the patch!
+ Alternatively, use the standard C library's free() function as
in the example below.
+ If the result set contains more than one record, an SQLDA
corresponding to each records is saved as linked list.
+ There is a possibility to free allocated memory area doubly and
cause the application crash,
+ because ECPGfreeSQLDA() releases all SQLDAs associated with the
specified the SQLDA.
This is not clear to me. ECPGfreeSQLDA() releases a whole chain, but
free() only releases a single SQLDA(), so they are obviously not
interchangeable. When exactly should a user prefer one over the
other? If there is a good reason to free just one OR the whole chain,
shouldn't we provide a way to do both of those things without the user
having to use libc free(), for the benefit of Windows users who can't
safely use free()?
- * the new partition's info into its partition descriptor. If there is a
+ * the new partition's info into its partition descriptor. If there is a
This seems to be a spurious hunk, but I cannot see what changed.
--
Thomas Munro
http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Dilip Kumar | 2018-06-18 05:58:19 | Re: Concurrency bug in UPDATE of partition-key |
Previous Message | Ashutosh Bapat | 2018-06-18 05:20:27 | Re: Remove mention in docs that foreign keys on partitioned tables are not supported |