From: Nickolay S. <sk...@bs...> - 2003-07-31 13:25:27
|
Hello, Helen ! > At 12:50 AM 31/07/2003 +0400, Nickolay Samofatov wrote: >>Hello, Paul ! >> >>I prepared a patch to change ltrim and rtrim behaviour >>to return NULL for any number of spaces including zero. > Why? What is the justification for breaking the established behaviour? I'm not breaking the behaviour. I just fix errors. currently, rtrim(NULL) = NULL rtrim('') = NULL rtrim(' ') = ' ' rtrim(' ') = ' ' rtrim(' ') = ' ' ltrim(NULL) = NULL ltrim('') = NULL ltrim(' ') = '' (Note: ltrim(ltrim(' ')) != ltrim(' ')) > If I pass a string, I want to get a trimmed string back, just as in Delphi, > which the UDF mimics and which years of application code relies on. You'll get it. My change affects only trimming string consisted only of spaces. > If change were in sight (as I don't believe it was at this time, only a > bug-fix to the existing UDF) a correct approach would be to bring TRIM into > line with the standard. Use the verb TRIM with keyword LEADING | TRAILING > | BOTH and allow for the trimming of ANY specified character (with space as > the default). > e.g. > TRIM (LEADING ' ' FROM ' TEST ') yields 'TEST ' > TRIM (TRAILING ' ' FROM ' TEST ') yields ' TEST' > TRIM (BOTH ' ' FROM ' TEST ') yields 'TEST' > TRIM (BOTH 'T' FROM 'TEST') yields 'ES' This would be nice and is not too hard to implement. Volunteers ? > Helen Nickolay Samofatov |