Re: [WISHLIST] EXECUTE SPRINTF

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: [WISHLIST] EXECUTE SPRINTF
Дата
Msg-id AANLkTiksA4N1TT85FgwxwQV5JBuVlvnN4erZf5i6uaCr@mail.gmail.com
обсуждение исходный текст
Ответ на [WISHLIST] EXECUTE SPRINTF  (Vincenzo Romano <vincenzo.romano@notorand.it>)
Список pgsql-general
2010/7/16 Vincenzo Romano <vincenzo.romano@notorand.it>:
> Hi all.
> I'd like to add an item to the PG wishlist (provided that one exists).
> In PL/PgSQL function bodies I'm using very often a pattern like this:
>
> EXECUTE SPRINTF( '...',... );
>
> Where SPRINFT comes from here:
> http://wiki.postgresql.org/wiki/Sprintf
>
> It's by far more powerful, easy and effective than the standard
> "string concatenation" mechanism available for the plain EXECUTE.
> It's a different approach than the EXECUTE ... USING which has it's
> own rules and limitations (see chapter 38.5.4 for v8.4.4).
> The proposed approach doesn't know anything about symbols or other PL/PGSQL
> related syntax and can be used to build very complex (or otherwise
> impossible) dynamic SQL.
>
> I'd like to either see the SPRINTF function embedded either into the
> language, possibly with really variadic argument list (like stdarg.h
> in C) or into the EXECUTE itself with something like "EXECUTE <a
> string> SPRINTF <argument list>".
>
> Does this make any sense to you all?

Current commitfest has a patch for functions format (in core) and
sprintf (in contrib). So in next version you will can do some like

EXECUTE format('INSERT INTO % (a,b) VALUES($1,$2)', quote_ident(tab))
USING val1, val2;

Regards

Pavel Stehule


>
> --
> Vincenzo Romano
> NotOrAnd Information Technologies
> NON QVIETIS MARIBVS NAVTA PERITVS
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Full Text Search dictionary issues
Следующее
От: Joshua Rubin
Дата:
Сообщение: Re: Efficient Way to Merge Two Large Tables