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*/
>
>
>
>
>


-- 
С уважением

Олег Серов

Reply via email to