plpgsql plan caching allowing invalid data to enter table? - Mailing list pgsql-general

From Joe Van Dyk
Subject plpgsql plan caching allowing invalid data to enter table?
Date
Msg-id CACfv+pJUbc5Kg7HQ-xSpw_HDhExZWOWhff0pVyADb24bkokaaQ@mail.gmail.com
Whole thread Raw
Responses Re: plpgsql plan caching allowing invalid data to enter table?
Re: plpgsql plan caching allowing invalid data to enter table?
Re: plpgsql plan caching allowing invalid data to enter table?
List pgsql-general
It's looking like I can use a plpgsql function to insert data into a table that violates a domain constraint. Is this a known problem?

Session 1: 

create domain my_domain text check (length(value) > 2);
create table my_table (name my_domain);

create function f(text) returns void as $$ 
declare my_var my_domain := $1; 
begin
   insert into my_table values (my_var); 
end $$ language plpgsql;

Session 2:
select f('test');
delete from my_table;
-- Keep session open!

Session 1:
alter domain my_domain drop constraint my_domain_check;
alter domain my_domain add constraint my_domain_check check (length(value) > 5);

Session 2:
select f('test'); 
-- This works, but it should fail.
-- I have a constraint of more than 5 characters on the domain.
-- But I can insert a row with 4 characters.

pgsql-general by date:

Previous
From: Jeff Janes
Date:
Subject: Re: Force ssl connection
Next
From: Joe Van Dyk
Date:
Subject: Re: plpgsql plan caching allowing invalid data to enter table?