From: | Itagaki Takahiro <itagaki(dot)takahiro(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | format() with embedded to_char() formatter |
Date: | 2010-11-22 12:03:15 |
Message-ID: | AANLkTikiGxJSmwWX7GQb4EcaO_qZzEaRWX4fXEjJSTf3@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
format() function is very useful to construct formatted text,
but it doesn't support embedded formatter unlike sprintf() in C.
Of course, we can use to_char() functions for each argument value,
but embedded formatter would be more readable.
I'd like to propose %{...}s syntax, where format('%{xxx}s', arg)
is equivalent to format('%s', to_char(arg, 'xxx')). I think the
approach is better than implement C-like formatter because we
can reuse existing to_char() functions for the purpose.
Here are examples for the usage:
=# SELECT format('%{FM0000}s : %{YYYY-MM-DD}L', 123, current_timestamp);
format
---------------------
0123 : '2010-11-22'
=# SELECT format('CREATE TABLE partition_%{YYYYMMDD}s () INHERITS
parent', current_date);
format
----------------------------------------------------
CREATE TABLE partition_20101122 () INHERITS parent
Is it interesting? Comments welcome.
--
Itagaki Takahiro
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2010-11-22 12:40:53 | Re: Explain analyze getrusage tracking |
Previous Message | Heikki Linnakangas | 2010-11-22 11:54:55 | Re: Latches with weak memory ordering (Re: max_wal_senders must die) |