2010/7/23 Itagaki Takahiro <itagaki.takah...@gmail.com>:
> 2010/7/21 Pavel Stehule <pavel.steh...@gmail.com>:
>> It is about 2% slower for UTF8 encoding. So it isn't significant for me.
>> I agree with your changes. Thank You very much
>
> Thanks. The core-part is almost ready to commit.
> I'll continue to review the contrib part.
>
> But I found there is a design issue in format() :
> Appending a '%' is common use-case, but format() cannot append
> % char without any spaces between placeholder and the raw % char.
>
> itagaki=# SELECT format('%%%', 10), format('% %%', 10);
>  format | format
> --------+--------
>  %10    | 10 %
> (1 row)
>
> It is a design issue, and RAISE in PL/pgSQL has the same issue, too.
> Do we accept the restriction? Or should we add another escape
> syntax and/or placeholder pattern?
>

I prefer a current behave - RAISE statement uses same and it is not
reported as bug for ten years, what I read a mailing lists. I would to
have a FORMAT implementation simple as possible.

and there is simple workaround:

postgres=# create or replace function fx()
returns void as $$
begin
  raise notice '>>>%<<<', '%';
end;
$$ language plpgsql;
CREATE FUNCTION
Time: 560.063 ms
postgres=# select fx();
NOTICE:  >>>%<<<
 fx
────

(1 row)

Regards

Pavel Stehule

> --
> Itagaki Takahiro
>

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to