Обсуждение: PATCH: FB#15614: Use CALL for callable statements

Поиск
Список
Период
Сортировка

PATCH: FB#15614: Use CALL for callable statements

От
Ashesh Vashi
Дата:
Hi Dave,
 
Please find the patch for the same.
This is valid for both trunk and REL-1_10 patch.
 
--
Thanks & Regards,
Ashesh Vashi
 
EntepriseDB INDIA: www.enterprisedb.com
Вложения

Re: PATCH: FB#15614: Use CALL for callable statements

От
Dave Page
Дата:
Thanks - patch applied.

On Thu, May 27, 2010 at 10:22 AM, Ashesh Vashi
<ashesh.vashi@enterprisedb.com> wrote:
> Hi Dave,
>
> Please find the patch for the same.
> This is valid for both trunk and REL-1_10 patch.
>
> --
> Thanks & Regards,
> Ashesh Vashi
>
> EntepriseDB INDIA: www.enterprisedb.com



--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise Postgres Company

Re: PATCH: FB#15614: Use CALL for callable statements

От
Guillaume Lelarge
Дата:
Le 27/05/2010 11:32, Dave Page a écrit :
> Thanks - patch applied.
>
> On Thu, May 27, 2010 at 10:22 AM, Ashesh Vashi
> <ashesh.vashi@enterprisedb.com> wrote:
>> Hi Dave,
>>
>> Please find the patch for the same.
>> This is valid for both trunk and REL-1_10 patch.
>>

Are we sure that the dlgDirectDbg::invokeTargetCallable() method is only
called when connected to an EDB server? I didn't work a lot with the
debugger frontend source code, but it seems to me that this function can
be called even with vanilla PostgreSQL servers, especially on Windows
(see dlgDirectDbg::invokeTarget() method). Am I wrong?


--
Guillaume
 http://www.postgresql.fr
 http://dalibo.com

Re: PATCH: FB#15614: Use CALL for callable statements

От
Dave Page
Дата:
On Thu, May 27, 2010 at 11:20 AM, Guillaume Lelarge
<guillaume@lelarge.info> wrote:
> Le 27/05/2010 11:32, Dave Page a écrit :
>> Thanks - patch applied.
>>
>> On Thu, May 27, 2010 at 10:22 AM, Ashesh Vashi
>> <ashesh.vashi@enterprisedb.com> wrote:
>>> Hi Dave,
>>>
>>> Please find the patch for the same.
>>> This is valid for both trunk and REL-1_10 patch.
>>>
>
> Are we sure that the dlgDirectDbg::invokeTargetCallable() method is only
> called when connected to an EDB server? I didn't work a lot with the
> debugger frontend source code, but it seems to me that this function can
> be called even with vanilla PostgreSQL servers, especially on Windows
> (see dlgDirectDbg::invokeTarget() method). Am I wrong?

Hopefully :-)

m_targetInfo->getIsFunction() should return false for anything other
than an EDB-SPL stored procedure:

#ifdef __WXMSW__
    if (!m_targetInfo->getIsFunction() &&
        PQiGetOutResult &&
        PQiPrepareOut &&
        PQiSendQueryPreparedOut)
        invokeTargetCallable();
    else
#else
#ifdef EDB_LIBPQ
    if (!m_targetInfo->getIsFunction())
        invokeTargetCallable();
    else
#endif
#endif



--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise Postgres Company

Re: PATCH: FB#15614: Use CALL for callable statements

От
Guillaume Lelarge
Дата:
Le 27/05/2010 12:49, Dave Page a écrit :
> On Thu, May 27, 2010 at 11:20 AM, Guillaume Lelarge
> <guillaume@lelarge.info> wrote:
>> Le 27/05/2010 11:32, Dave Page a écrit :
>>> Thanks - patch applied.
>>>
>>> On Thu, May 27, 2010 at 10:22 AM, Ashesh Vashi
>>> <ashesh.vashi@enterprisedb.com> wrote:
>>>> Hi Dave,
>>>>
>>>> Please find the patch for the same.
>>>> This is valid for both trunk and REL-1_10 patch.
>>>>
>>
>> Are we sure that the dlgDirectDbg::invokeTargetCallable() method is only
>> called when connected to an EDB server? I didn't work a lot with the
>> debugger frontend source code, but it seems to me that this function can
>> be called even with vanilla PostgreSQL servers, especially on Windows
>> (see dlgDirectDbg::invokeTarget() method). Am I wrong?
>
> Hopefully :-)
>
> m_targetInfo->getIsFunction() should return false for anything other
> than an EDB-SPL stored procedure:
>
> #ifdef __WXMSW__
>     if (!m_targetInfo->getIsFunction() &&
>         PQiGetOutResult &&
>         PQiPrepareOut &&
>         PQiSendQueryPreparedOut)
>         invokeTargetCallable();
>     else
> #else
> #ifdef EDB_LIBPQ
>     if (!m_targetInfo->getIsFunction())
>         invokeTargetCallable();
>     else
> #endif
> #endif
>

Oh OK, I didn't notice the getIsFunction() call.


--
Guillaume
 http://www.postgresql.fr
 http://dalibo.com