>>> Pavel Stehule <pavel.steh...@gmail.com> 9/7/2009 3:47 PM >>>
Hello

2009/9/7 Tomasz Karlik <tomasz.kar...@ultimo.pl>:
>
>
>>>> Alvaro Herrera <alvhe...@commandprompt.com> 9/4/2009 7:23 PM >>>
> tkar...@ultimo.pl wrote:
>
>> Without casting function executes much slower:
>>
>> CREATE OR REPLACE FUNCTION table_exists(tblname text) RETURNS boolean AS '
>> DECLARE
>> exists boolean;
>> BEGIN
>>     SELECT 1 INTO exists FROM pg_class WHERE relname = name($1);
>>     RETURN exists;
>> END;
>> ' LANGUAGE 'plpgsql' IMMUTABLE;
>

it some strange. What version do you use?

on 5.4

postgres=# explain select * from pg_class where relname='aaa';
                                         QUERY PLAN

--------------------------------------------------------------------------------
-------------
Index Scan using pg_class_relname_nsp_index on pg_class  (cost=0.00..8.27 rows=
1 width=185)
   Index Cond: (relname = 'aaa'::name)
(2 rows)

the casting is implicit.

 
It does'nt work only inside function. Look for execution times in my first 
post. Maybe the planner treats SQL SELECT query other than procedural SELECT 
INTO?

Reply via email to