Re: [PATCH] SQLFreeStmt deletes params, but does not reset the stmt->prepared state. - Mailing list pgsql-odbc

From Oliver Freyd
Subject Re: [PATCH] SQLFreeStmt deletes params, but does not reset the stmt->prepared state.
Date
Msg-id 54411042.3050202@iontof.com
Whole thread Raw
In response to Re: [PATCH] SQLFreeStmt deletes params, but does not reset the stmt->prepared state.  ("Inoue, Hiroshi" <inoue@tpf.co.jp>)
List pgsql-odbc
>> I hope this is useful, it took quite a while to track this down...
>
> Thank you for your investigation.
>
> According to the following pages
>   http://msdn.microsoft.com/en-us/library/ms709284%28v=vs.85%29.aspx
>   http://msdn.microsoft.com/en-us/library/ms710926%28v=vs.85%29.aspx
>
> , it seems better to reset APD only keeping IPD intact.
>
> Comments?
>
Thank you for your quick reply,

at first sight that seems to be better, more efficient as the statement
keeps its prepared state. Only thing is I don't know if that would lead
to a memory leak later, no idea when the IPD params are freed.

I can try if that works, too...

regards,
Oliver Freyd


> regards,
> Hiroshi Inoue
>
>> best regards,
>>
>>      Oliver Freyd
>>
>> -----------------------------------------------------------------------
>> diff --git a/statement.c b/statement.c
>> index da5abf5..a019d5d 100644
>> --- a/statement.c
>> +++ b/statement.c
>> @@ -581,6 +581,7 @@ SC_free_params(StatementClass *self, char option)
>>       {
>>           APD_free_params(SC_get_APDF(self), option);
>>           IPD_free_params(SC_get_IPDF(self), option);
>> +        if (self->prepared!=NOT_YET_PREPARED)\
>> SC_set_prepared(self, NOT_YET_PREPARED);
>>       }
>>       PDATA_free_params(SC_get_PDTI(self), option);
>>       self->data_at_exec = -1;
>>
>>
>>
>
>


pgsql-odbc by date:

Previous
From: Andreas Buschka
Date:
Subject: Linking tables from MS Access 2013 works fine, but cannot get table and column comments
Next
From: Adrian Klaver
Date:
Subject: Re: PostgreSQL crash at SQLColAttribute()