BUG #6533: postgre server crashes by create function (create table as)
The following bug has been logged on the website:
Bug reference: 6533
Logged by: Alex Sanin
Email address: vozhdb@gmail.com
PostgreSQL version: 9.0.4
Operating system: Windows XP sp3
Description:
Here is the script:
drop table if exists test;
CREATE TABLE test
(
id serial NOT NULL,
lastname character varying(255) NOT NULL,
firstname character varying(255),
middlename character varying(255),
birthdate date,
listid integer,
CONSTRAINT test_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
insert into test select a, a::character varying, a::character varying,
a::character varying, now()::date + a, a from generate_series(1,10000)
t(a);
CREATE OR REPLACE FUNCTION create_test_child() RETURNS void AS $$
DROP TABLE IF EXISTS test_child;
CREATE TABLE test_child AS SELECT test.* FROM test as test;
$$ LANGUAGE sql VOLATILE;
select create_test_child();
-------------------------------------
---------same without aliases--------
drop table if exists test;
CREATE TABLE test
(
id serial NOT NULL,
lastname character varying(255) NOT NULL,
firstname character varying(255),
middlename character varying(255),
birthdate date,
listid integer,
CONSTRAINT test_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
insert into test select a, a::character varying, a::character varying,
a::character varying, now()::date + a, a from generate_series(1,10000)
t(a);
CREATE OR REPLACE FUNCTION create_test_child() RETURNS void AS $$
DROP TABLE IF EXISTS test_child;
CREATE TABLE test_child AS SELECT * FROM test;
$$ LANGUAGE sql VOLATILE;
select create_test_child();
vozhdb@gmail.com writes:
The following bug has been logged on the website:
Bug reference: 6533
Logged by: Alex Sanin
Email address: vozhdb@gmail.com
PostgreSQL version: 9.0.4
Operating system: Windows XP sp3
Description:
Here is the script:
This script doesn't crash for me, in HEAD or 9.0 branch tip. Given the
use of CREATE TABLE AS in a SQL function, I suspect that this is the
same issue fixed in 9.0.7:
Fix dangling pointer after CREATE TABLE AS/SELECT INTO in a SQL-language function (Tom Lane)
In most cases this only led to an assertion failure in assert-enabled builds, but worse consequences seem possible.
regards, tom lane