On Thu, Mar 15, 2018 at 12:31 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > guaibasaurus just failed in a way I'd not seen before: > > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=guaibasaurus&dt=2018-03-14%2006%3A33%3A01 > > Inspection of the diffs makes it depressingly obvious what happened: > the concurrently-executing "alter_table" and "with" scripts both create > short-lived tables named "test". Given the right timing, those tests > stomp on each other. This seems to have been there a long time; > surprising we'd not noticed it before. > > Moral: choose names less generic than "test" for globally-visible > objects. I wonder if there's some way we could check for such > conflicts automatically?
Ugh. Yeah. Non-temporary table and view names used in more than one .sql file: $ ( for F in src/test/regress/sql/*.sql ; do perl -ne '/create *(table|view) ([^ (]+)/i && print "$2\n";' < $F | sort | uniq ; done ) | sort | uniq -d IF abc as bar bmscantest c1 child collate_dep_test1 collate_dep_test3 collate_dep_test4t collate_test1 collate_test10 collate_test2 collate_test3 collate_test4 collate_test5 collate_test6 collate_test_fail collate_test_like collview1 collview2 collview3 fail_part foo foo2 hash_parted hpart1 hpart2 hpart3 hpart_1 hpart_2 list_parted list_parted2 list_parted2_def mcrparted mcrparted0 mcrparted1 mcrparted2 mcrparted3 mcrparted4 mcrparted5 num_data num_exp_add num_exp_div num_exp_ln num_exp_log10 num_exp_mul num_exp_power_10_ln num_exp_sqrt num_exp_sub num_result p1 p2 parent part1 part2 part3 part4 part_1 part_2 part_def part_default part_null partitioned pt1 range_parted range_parted2 t1 t2 t3 table1 table2 tbl1 test test1 test_u tmp toasttest tt1 tt2 tt3 tt4 tt5 tt6 tt7 tt8 tx1 unparted v1 v2 -- Thomas Munro http://www.enterprisedb.com