maybe a bug in plpgsql, nulls and empty strings are not the same
От | Domingo Alvarez Duarte |
---|---|
Тема | maybe a bug in plpgsql, nulls and empty strings are not the same |
Дата | |
Msg-id | 3B1132B5.418D53C7@dad-it.com обсуждение исходный текст |
Ответы |
Re: maybe a bug in plpgsql, nulls and empty strings are not the same
|
Список | pgsql-hackers |
When trying write a function in plpgsql I'm getting behavior that probably isn't the corect one. in the function bellow: ----- -- split the given key create function dad_char_key_split( varchar, -- char_key integer, -- subkey_len char -- separator ) returns varchar as ' declare p_char_key alias for $1; p_subkey_len alias for $2; p_separator alias for $3; v_key_len integer; v_from integer; v_result varchar; v_sep char; begin v_result := ''''; v_sep := ''''; v_from := 1; v_key_len := char_length(p_char_key); fori in 1..(v_key_len/p_subkey_len) loop v_result := v_result || v_sep || substr(p_char_key,v_from,p_subkey_len); v_sep := p_separator; v_from := v_from + p_subkey_len; end loop; return v_result; end;' language 'plpgsql'; ---- if I try this: select dad_char_key_split('00kjoi',2,','); I get this result: ",kj,oi" And when I change the initialization of the variables "v_sep" and "v_result" from empty strings to a space ('' '' istead of '''') I get the expected result: "00,kj,oi" It seems that plpgsql treats empty strings as null so when concatenating with a empty string we get null instead of some value.
В списке pgsql-hackers по дате отправления: