Re: (b)trim anomalies - Mailing list pgsql-general
From | Thomas F.O'Connell |
---|---|
Subject | Re: (b)trim anomalies |
Date | |
Msg-id | 7C818A8B-410A-11D9-9617-000D93AE0944@sitening.com Whole thread Raw |
In response to | Re: (b)trim anomalies (Bruce Momjian <pgman@candle.pha.pa.us>) |
Responses |
Re: (b)trim anomalies
|
List | pgsql-general |
Not entirely. Per <http://www.postgresql.org/docs/7.4/static/functions-string.html>, btrim is documented as taking two arguments. There is a single-argument version that exists that trims whitespace if only the first argument is given (i.e., the characters to trim are omitted). This latter version is nowhere documented as far as I can tell. I'm also curious why, despite its place in the ANSI standard, \df seems to reveal no information about trim. -tfo -- Thomas F. O'Connell Co-Founder, Information Architect Sitening, LLC http://www.sitening.com/ 110 30th Avenue North, Suite 6 Nashville, TN 37203-6320 615-260-0005 On Nov 27, 2004, at 9:23 PM, Bruce Momjian wrote: > 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 by date: