BUG #5353: Bug in procedure When you modificate table

Started by Oleg Serovabout 16 years ago2 messagesbugs
Jump to latest
#1Oleg Serov
serovov@gmail.com

The following bug has been logged online:

Bug reference: 5353
Logged by: Oleg
Email address: serovov@gmail.com
PostgreSQL version: any
Operating system: any
Description: Bug in procedure When you modificate table
Details:

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

/*
ERROR: structure of query does not match function result type
CONTEXT: PL/pgSQL function "buggy_procedure" line 3 at RETURN QUERY*/

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Oleg Serov (#1)
Re: BUG #5353: Bug in procedure When you modificate table

"Oleg" <serovov@gmail.com> writes:

Description: Bug in procedure When you modificate table

The example works okay in HEAD (9.0alpha4). I doubt we'd risk
back-patching the fix --- it was a bit invasive IIRC.

regards, tom lane