Re: UDF in C slow

From: Inanc Seylan <inanc(dot)seylan(at)gmail(dot)com>
To: Alban Hertroys <haramrae(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: UDF in C slow
Date: 2012-05-11 14:39:50
Message-ID: 4FAD24B6.8040704@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

It is IMMUTABLE. I attach the output of EXPLAIN both with and without
the simple function (returning true only) in the query.

On 5/11/12 4:21 PM, Alban Hertroys wrote:
> On 11 May 2012 15:57, Inanc Seylan<inanc(dot)seylan(at)gmail(dot)com> wrote:
>> Hi all,
>>
>> I have implemented a user-defined function in C that returns a boolean value
>> after some computation. Now I have a query Q such that when I specify the
>> function in the WHERE clause of Q, Q runs in 40 secs and if I don't use the
>> function it runs in 4 secs. Then I thought that my implementation of this
>> function could be slow; so I decided to write a very simple function that
>> just returns true without any computation. To my surprise, it also takes
>> around 40 seconds to run Q with the new very simple function. Does anybody
>> have a clue about what might be going wrong?
>
> Is that a VOLATILE, STABLE or IMMUTABLE function? What's the output of
> EXPLAIN ANALYZE?

Attachment Content-Type Size
explain_with_function.txt text/plain 5.4 KB
explain_without_function.txt text/plain 5.8 KB

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message hubert depesz lubaczewski 2012-05-11 14:41:58 Re: avoiding CONTEXT messages
Previous Message Alban Hertroys 2012-05-11 14:21:35 Re: UDF in C slow