Hey, anybody will answer here? 2008/7/4 Oleg Serov <sero...@gmail.com>
> SQL BUG CODE: > BEGIN; > SELECT version(); -- "PostgreSQL 8.3.3 on i686-redhat-linux-gnu, compiled > by GCC gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14)" > CREATE TYPE "buggy_enum_first" AS ENUM ( 'bug1', 'bug2', 'bug3' ); > > CREATE TABLE "bug_table" ( > "id" BIGINT NOT NULL, > "buggy_enum_field" "buggy_enum_first" DEFAULT 'bug1'::buggy_enum_first > NOT NULL, > CONSTRAINT "test_table_pkey" PRIMARY KEY("id") > ) WITHOUT OIDS; > > > CREATE FUNCTION buggy_procedure() RETURNS SETOF bug_table > AS $$ > BEGIN > -- @todo hide password > RETURN QUERY ( > SELECT * > FROM bug_table > ); > END; > $$ > LANGUAGE plpgsql STRICT SECURITY DEFINER; > > SELECT * FROM buggy_procedure(); -- All Okey > DROP TYPE buggy_enum_first CASCADE; > CREATE TYPE "buggy_enum_second" AS ENUM ( 'bug1', 'bug2', 'bug3' ); > ALTER TABLE bug_table ADD COLUMN buggy_enum_field buggy_enum_second; > SELECT * FROM buggy_procedure(); -- Bug > ROLLBACK; > /*NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index > "test_table_pkey" for table "bug_table"Результат запроса с отброшенным > числом строк: 1. > > NOTICE: drop cascades to default for table bug_table column > buggy_enum_fieldNOTICE: drop cascades to table bug_table column > buggy_enum_field > ERROR: structure of query does not match function result type > CONTEXT: PL/pgSQL function "buggy_procedure" line 3 at RETURN QUERY*/ > > > > > -- С уважением Олег Серов