Обсуждение: BUG #4865: replace function returns null
The following bug has been logged online: Bug reference: 4865 Logged by: Jamolkhon Khakimov Email address: jkhakimov@gmail.com PostgreSQL version: 8.2.7 Operating system: Linux Description: replace function returns null Details: I dont know if it's a bug or not. It just seems illogical to me. replace( 'abcdefabcdef', 'cd', 'XX') // returns 'abXXefabXXef', ok replace( 'abcdefabcdef', 'XX', 'YY') // returns 'abcdefabcdef', ok replace( 'abcdefabcdef', 'XX', null) // returns null, while it should return 'abcdefabcdef' Sorry if that's not a bug. Could find anything related to this in the documentation.
"Jamolkhon Khakimov" <jkhakimov@gmail.com> writes: > replace( 'abcdefabcdef', 'XX', null) > // returns null, while it should return 'abcdefabcdef' No, it should return null. Like most Postgres functions, replace is strict, meaning it returns null if any input is null. This is sensible in the abstract because an unknown input means the result is unknown too. I suppose your argument is that the result here could be determined without knowing what the third argument value is, but the mechanism doesn't attempt to make such a fine distinction. regards, tom lane