Re: (b)trim anomalies

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: (b)trim anomalies
Дата
Msg-id 200411280323.iAS3NXW09724@candle.pha.pa.us
обсуждение исходный текст
Ответ на (b)trim anomalies  (Thomas F.O'Connell <tfo@sitening.com>)
Ответы Re: (b)trim anomalies  (Thomas F.O'Connell <tfo@sitening.com>)
Список pgsql-general
Thomas F.O'Connell wrote:
> I was just wondering why the btrim syntax that takes only a single
> argument is not documented in 9.4 in the documentation (I checked both
> 7.4 and 8.0 docs).
>
> This is in a 7.4.5 installation:
>
> pg=# \df btrim
>                        List of functions
>   Result data type |   Schema   | Name  | Argument data types
> ------------------+------------+-------+---------------------
>   bytea            | pg_catalog | btrim | bytea, bytea
>   text             | pg_catalog | btrim | text
>   text             | pg_catalog | btrim | text, text
> (3 rows)
>
> Is it ever documented anywhere that the single-argument version of
> btrim can be used to remove whitespace from the left and right of a
> given string? Is this version not supposed to be user-facing for some
> reason?
>
> Also, in this post:
>
> http://archives.postgresql.org/pgsql-sql/2002-01/msg00053.php
>
> Bruce sort of explains that TRIM is an ANSI word but doesn't fully
> explain why it doesn't show up in a \df listing:
>
> pg=# \df trim
>                     List of functions
>   Result data type | Schema | Name | Argument data types
> ------------------+--------+------+---------------------
> (0 rows)
>
> This one's more a curiosity thing.

Because TRIM is an ANSI standard, we document TRIM (BOTH, ...) but not
btrim.  The parser does the translation:

            | TRIM '(' BOTH trim_list ')'
                {
                    /* various trim expressions are defined in SQL92
                     * - thomas 1997-07-19
                     */
                    FuncCall *n = makeNode(FuncCall);
                    n->funcname = SystemFuncName("btrim");
                    n->args = $4;
                    n->agg_star = FALSE;
                    n->agg_distinct = FALSE;
                    $$ = (Node *)n;

Does that answer your questions?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

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

Предыдущее
От: songsubosongtebo songsubosongtebo
Дата:
Сообщение: PQoidValue have no use?
Следующее
От: songsubosongtebo songsubosongtebo
Дата:
Сообщение: Re: GENERAL] Boolean error