• Tom Lane's avatar
    Remove heuristic same-transaction test from check_safe_enum_use(). · 984c9207
    Tom Lane authored
    The blacklist mechanism added by the preceding commit directly fixes
    most of the practical cases that the same-transaction test was meant
    to cover.  What remains is use-cases like
    
    	begin;
    	create type e as enum('x');
    	alter type e add value 'y';
    	-- use 'y' somehow
    	commit;
    
    However, because the same-transaction test is heuristic, it fails on
    small variants of that, such as renaming the type or changing its
    owner.  Rather than try to explain the behavior to users, let's
    remove it and just have a rule that the newly added value can't be
    used before being committed, full stop.  Perhaps later it will be
    worth the implementation effort and overhead to have a more accurate
    test for type-was-created-in-this-transaction.  We'll wait for some
    field experience with v10 before deciding to do that.
    
    Back-patch to v10.
    
    Discussion: https://postgr.es/m/20170922185904.1448.16585@wrigleys.postgresql.org
    984c9207
enum.c 15.8 KB