2016-01-24 8:04 GMT-02:00 Tatsuo Ishii <is...@postgresql.org>:
>> On Wed, Jan 20, 2016 at 4:20 AM, Pavel Stehule <pavel.steh...@gmail.com> 
>> wrote:
>>>> If we would go this way, question is if we should back patch this or
>>>> not since the patch apparently changes the existing
>>>> behaviors. Comments?  I would think we should not.
>>>
>>> I am sure, so we should not backport this change. This can breaks customer
>>> regress tests - and the current behave isn't 100% correct, but it is safe.
>>
>> Quite.  This is not a bug fix.  It's a behavior change, perhaps for the 
>> better.
>
> Added to the commitfest 2016-03.

Hi,

I gone ahead a little and tested this patch and it works like was
proposed, I agree that it's not a bug fix but a new behavior so -1 for
backport.

While applying patch against master
(1129c2b0ad2732f301f696ae2cf98fb063a4c1f8) it offsets two hunks.

Since format() has regression tests I suggest that one should be added
to cover this. It could worth to add the new behavior to the docs,
since there no explicit example for %I.

I performed the follow tests that works as expected using some Portuguese words:

postgres=# create table test (nome varchar, endereço text, "UF"
varchar(2), título varchar);
CREATE TABLE
Time: 80,769 ms
postgres=# select format('%I', attname) from pg_attribute join
pg_class on (attrelid = oid) where relname = 'test';
  format
----------
 "UF"
 cmax
 cmin
 ctid
 endereço
 nome
 tableoid
 título
 xmax
 xmin
(10 rows)

Time: 1,728 ms
postgres=# select format('%I', 'endereco');
  format
----------
 endereco
(1 row)

Time: 0,098 ms
postgres=# select format('%I', 'endereço');
  format
----------
 endereço
(1 row)

Time: 0,088 ms
postgres=# select format('%I', 'あああ');
 format
--------
 あああ
(1 row)

Time: 0,072 ms
postgres=# select format('%I', 'título');
 format
--------
 título
(1 row)

Time: 0,051 ms
postgres=# select format('%I', 'título e');
   format
------------
 "título e"
(1 row)

Time: 0,051 ms
postgres=# select format('%I', 'título_e');
  format
----------
 título_e
(1 row)

Time: 0,051 ms
postgres=# select format('%I', '_título');
 format
---------
 _título
(1 row)

Time: 0,047 ms
postgres=# select format('%I', '1_título');
   format
------------
 "1_título"
(1 row)

Time: 0,046 ms


Thank you for this!


Best regards,
-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://github.com/guedes - http://guedesoft.net
http://www.postgresql.org.br


-- 
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