Re: domain cast in parameterized vs. non-parameterized query

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: domain cast in parameterized vs. non-parameterized query
Дата
Msg-id CAFj8pRC8c58FS3dYrAHHN3T=xznSnBpS4FLJ_kxnhEQAoBkEDA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: domain cast in parameterized vs. non-parameterized query  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: domain cast in parameterized vs. non-parameterized query  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hi

2017-12-20 23:41 GMT+01:00 Tom Lane <tgl@sss.pgh.pa.us>:
I wrote:
> You might consider whether you can write 'spa-000'::uid explicitly in your
> query; that results in immediate application of the domain coercion, so
> that the planner no longer sees that as a run-time operation it has to
> avoid.

Hm, scratch that --- experimentation shows that the parser still produces
a CoerceToDomain node in that case, not a literal of the domain type.

regression=# create domain foo as text;
CREATE DOMAIN
regression=# explain verbose select 'x'::foo;
                QUERY PLAN
-------------------------------------------
 Result  (cost=0.00..0.01 rows=1 width=32)
   Output: ('x'::text)::foo
(2 rows)

You could force the issue with an immutable function:

Why the rewrite doesn't reduce it? Or why parser does it?

Regards

Pavel
 

regression=# create function forcefoo(text) returns foo as
regression-# 'begin return $1::foo; end' language plpgsql immutable;
CREATE FUNCTION
regression=# explain verbose select forcefoo('x');
                QUERY PLAN
-------------------------------------------
 Result  (cost=0.00..0.01 rows=1 width=32)
   Output: 'x'::foo
(2 rows)

Marking this function as immutable is sort of a lie, because it
is effectively telling the planner that you don't expect any
failure from pre-evaluation of the function.  But it'd get the
job done, and in most situations there's no practical difference
because any failure would have happened anyway at runtime.

                        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jeff Janes
Дата:
Сообщение: Re: Bitmap table scan cost per page formula
Следующее
От: Haisheng Yuan
Дата:
Сообщение: Re: Bitmap table scan cost per page formula