Bug in CREATE FUNCTION with character types if RETURNS TABLE used
От | Pavel Golub |
---|---|
Тема | Bug in CREATE FUNCTION with character types if RETURNS TABLE used |
Дата | |
Msg-id | 1097647030.20100414091807@gf.microolap.com обсуждение исходный текст |
Список | pgsql-hackers |
Hello. Already sent this to psql-bugs, but noticed one more issue. Since the first issue is critical for me as a developer, the second one confuses my clients (and me a little) ;) PostgreSQL version: 8.4.x Operating system: All ====== 1 ISSUE ===== If RETURNS TABLE clause of CREATE FUNCTION contain column of character type (without length specifier) it should be treated as character(1) according to manual, but it look like text. (http://www.postgresql.org/docs/8.4/static/datatype-character.html) Example: CREATE OR REPLACE FUNCTION test_char_function() RETURNS TABLE(id int, salesourcecode character) AS $BODY$ VALUES (1, 'one'), (2, 'two'), (3, 'three'); $BODY$ LANGUAGE 'sql' pqfmod function from libpq library for salesourcecode column returns 0, which is wrong. Who can ever imagine bpchar of length 0? :) (http://www.postgresql.org/docs/8.4/static/libpq-exec.html#LIBPQ-EXEC-SELECT-INFO) ====== 2 ISSUE ===== If RETURNS TABLE clause of CREATE FUNCTION contain column of char or varchar type with length specifier it still acts like text. CREATE OR REPLACE FUNCTION test_char_function() RETURNS TABLE(id int, salesourcecode varchar(30)) AS $BODY$ VALUES (1, 'one'), (2, 'two'), (3, 'three'); $BODY$ LANGUAGE 'sql'; pqfmod function from libpq library for salesourcecode column returns 0, which is wrong. -- With best wishes,Pavel mailto:pavel@gf.microolap.com
В списке pgsql-hackers по дате отправления: