Re: [BUGS] BUG #8335: trim() un-document behaviour

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [BUGS] BUG #8335: trim() un-document behaviour
Дата
Msg-id 22386.1376331481@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: [BUGS] BUG #8335: trim() un-document behaviour  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: [BUGS] BUG #8335: trim() un-document behaviour
Список pgsql-hackers
I wrote:
> This will break even more stuff than the last patch, ie, every single
> stored rule or view that contains a TRIM function.  You can *not*
> eliminate, or mess with, the expr_list production, because that's what
> dumping of these function calls relies on.

No, wait, I take that back.  I was thinking that the function call would
dump out as trim(x, y) but actually none of the underlying functions
are named just "trim"; they're btrim, ltrim, or rtrim.  So actually the
dump/reload scenario does not have anything to do with the trim_list
production --- the underlying functions just parse normally in any case.

The question remains why it's a good idea to mess with a syntax behavior
that's been like that for a dozen years or more.  I don't see any upside
to doing that.  As an example of a downside, right now if you try to
pass extra arguments to TRIM() you'll get

regression=# select trim(1,2,3);
ERROR:  function pg_catalog.btrim(integer, integer, integer) does not exist
LINE 1: select trim(1,2,3);              ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

You might wonder why the message mentions "btrim" not "trim", but at least
the complaint is reasonably on-topic.  After this patch, you'd just get
a "syntax error" message, which doesn't seem helpful at all.
        regards, tom lane



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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: pg_basebackup vs. Windows and tablespaces
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: pg_basebackup vs. Windows and tablespaces