Re: [PERFORM] Performance issue with castings args of the function - Mailing list pgsql-performance

From Андрей Хозов
Subject Re: [PERFORM] Performance issue with castings args of the function
Date
Msg-id CAA_oMnPtyL_T1eOZevdRe8XwNkrpokQw_MCPdEWCZA3YSiN5Ug@mail.gmail.com
Whole thread Raw
In response to Re: [PERFORM] Performance issue with castings args of the function  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-performance
Thanks all for explain!

On Mon, Jan 2, 2017 at 9:36 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
\xC1\xBA\xFFАндрей Хозо\xC1\xBA\xFFв <avkhozov@gmail.com> writes:
> create table t1 (id serial, str char(32));

> create function f1(line text) returns void as $$
> begin
>   perform * from t1 where str = line;
> end;
> $$ language plpgsql;

This query is specifying a text comparison (text = text operator).
Since the table column isn't text, a char-to-text conversion must
happen at each line.

> create function f2(line char) returns void as $$
> begin
>   perform * from t1 where str = line;
> end;
> $$ language plpgsql;

This query is specifying a char(n) comparison (char = char operator).
No type conversion step needed, so it's faster.

                        regards, tom lane



--
​Andrey Khozov

pgsql-performance by date:

Previous
From: Tom Lane
Date:
Subject: Re: [PERFORM] Performance issue with castings args of the function
Next
From: Vucomir Ianculov
Date:
Subject: [PERFORM] Unable to connect to server