Re: string function - "format" function proposal

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Itagaki Takahiro <itagaki.takahiro@gmail.com>
Cc: Pavel Stehule <pavel.stehule@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@commandprompt.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2010-10-14T12:25:58Z
Lists: pgsql-hackers
On Thu, Oct 14, 2010 at 2:25 AM, Itagaki Takahiro
<itagaki.takahiro@gmail.com> wrote:
>> Let's make format support %s, %i, and %l, as well as
>> allowing things like %$3l (meaning, escape the third argument as a
>> literal and interpolate here), and call it good.
>
> Your idea is:
>  % [ $ pos ] format  -- ex. %$3l , %l
>  Escapes: %% => %
>
> Just for information, $ and pos are reversed in C sprintf.
>  % [ pos $ ] format  -- ex. %3$l , %l
>  Escapes: %% => %

Oh, woops.  I intended to copy the way C works.

> IMHO, I like {} syntax as like as C# because the format strings are extensible.
>  { pos [ : format ] } -- ex {3:l}, {3} (, and {l} could be also supported)
>  Escapes: {{ => {, }} => }

My personal preference (and Pavel's, I guess) is to use the C-like
syntax.  But I wouldn't be upset if consensus congealed around some
other option.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company