Обсуждение: Instability in parallel regression tests

Поиск
Список
Период
Сортировка

Instability in parallel regression tests

От
Tom Lane
Дата:
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?

            regards, tom lane


Re: Instability in parallel regression tests

От
Thomas Munro
Дата:
On Thu, Mar 15, 2018 at 12:31 PM, Tom Lane <tgl@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


Re: Instability in parallel regression tests

От
Tom Lane
Дата:
Thomas Munro <thomas.munro@enterprisedb.com> writes:
> On Thu, Mar 15, 2018 at 12:31 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> 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

I've just been investigating this a different way, which is to insert some
quick-hack logging (patch attached for amusement).  I manually filtered
out a bunch of non-problems, in particular discarding names that are in
per-test schemas; I think it's all right to allow tests that are taking
that precaution to do what they like name-wise.  I'm still left with a
bunch of stuff that looks ill-considered.

It's worth singling out the partitioned-table work, in particular, as
deserving of an F on this test.  Those patches have shown no hesitation
about using the same public-schema table names in three or four different
test scripts.  It happens that most of that is in create_table,
alter_table, insert, and update, which happen not to run concurrently;
but I don't think those tests have any business depending on that.

Other thoughts:

* We should simply ban the use of "foo", "bar", "baz", "test...", and
"tmp..." as names; at least, don't do that without adding a prefix or
suffix that is unique to the particular test script.

* The prefix "my_" is not yours.

* We have a project policy that role names created during the tests
should start with "regress_".  Obey that, but don't imagine that
doing so is enough to make your name unique.

Actual or potential trouble spots according to my filtering:

[alter_table] LOG:  CREATING FUNCTION 2200/dummy_hashint4
[insert] LOG:  CREATING FUNCTION 2200/dummy_hashint4
[update] LOG:  CREATING FUNCTION 2200/dummy_hashint4

[rangefuncs] LOG:  CREATING FUNCTION 2200/foo
[rangefuncs] LOG:  CREATING FUNCTION 2200/foo
[rangefuncs] LOG:  CREATING FUNCTION 2200/foo
[rangefuncs] LOG:  CREATING FUNCTION 2200/foo
[rangefuncs] LOG:  CREATING FUNCTION 2200/foo1
[rangefuncs] LOG:  CREATING FUNCTION 2200/foo_mat
[rangefuncs] LOG:  CREATING FUNCTION 2200/foo_sql
[rangefuncs] LOG:  CREATING FUNCTION 2200/foob
[rangefuncs] LOG:  CREATING FUNCTION 2200/foobar
[rangefuncs] LOG:  CREATING FUNCTION 2200/foobar
[select_parallel] LOG:  CREATING FUNCTION 2200/foobar
[rangefuncs] LOG:  CREATING FUNCTION 2200/foor
[rangefuncs] LOG:  CREATING FUNCTION 2200/foot
[plpgsql] LOG:  CREATING FUNCTION 2200/footest
[plpgsql] LOG:  CREATING FUNCTION 2200/footest

[plpgsql] LOG:  CREATING FUNCTION 2200/simple_func
[select_parallel] LOG:  CREATING FUNCTION 2200/simple_func

[create_aggregate] LOG:  CREATING FUNCTION 2200/sum3
[polymorphism] LOG:  CREATING FUNCTION 2200/sum3

[create_function_1] LOG:  CREATING FUNCTION 2200/test1
[create_function_1] LOG:  CREATING FUNCTION 2200/test1
[create_function_1] LOG:  CREATING FUNCTION 2200/test1
[create_function_1] LOG:  CREATING FUNCTION 2200/test1
[create_function_1] LOG:  CREATING FUNCTION 2200/test1
[create_function_1] LOG:  CREATING FUNCTION 2200/test1
[create_function_1] LOG:  CREATING FUNCTION 2200/test1
[privileges] LOG:  CREATING FUNCTION 2200/testagg1
[rolenames] LOG:  CREATING FUNCTION 2200/testagg1
[privileges] LOG:  CREATING FUNCTION 2200/testagg1b
[rolenames] LOG:  CREATING FUNCTION 2200/testagg2
[rolenames] LOG:  CREATING FUNCTION 2200/testagg3
[rolenames] LOG:  CREATING FUNCTION 2200/testagg4
[rolenames] LOG:  CREATING FUNCTION 2200/testagg5
[rolenames] LOG:  CREATING FUNCTION 2200/testagg6
[rolenames] LOG:  CREATING FUNCTION 2200/testagg7
[rolenames] LOG:  CREATING FUNCTION 2200/testagg8
[rolenames] LOG:  CREATING FUNCTION 2200/testagg9
would be a live hazard, except the functions have different arguments:
[polymorphism] LOG:  CREATING FUNCTION 2200/testfoo
[polymorphism] LOG:  CREATING FUNCTION 2200/testfoo
[rangefuncs] LOG:  CREATING FUNCTION 2200/testfoo
[rangefuncs] LOG:  CREATING FUNCTION 2200/testfoo
[create_procedure] LOG:  CREATING FUNCTION 2200/testfunc1
[privileges] LOG:  CREATING FUNCTION 2200/testfunc1
[privileges] LOG:  CREATING FUNCTION 2200/testfunc2
[privileges] LOG:  CREATING FUNCTION 2200/testfunc4
[privileges] LOG:  CREATING FUNCTION 2200/testfunc5b
[privileges] LOG:  CREATING FUNCTION 2200/testfunc6b

[select_into] LOG:  CREATING RELATION 102018/tmp1
[select_into] LOG:  CREATING RELATION 102018/tmp1
[select_into] LOG:  CREATING RELATION 102018/tmp2
[select_into] LOG:  CREATING RELATION 102018/tmp2
[select_into] LOG:  CREATING RELATION 102018/tmp3
[select_into] LOG:  CREATING RELATION 102018/tmp3

[alter_table] LOG:  CREATING RELATION 2200/atacc1
[constraints] LOG:  CREATING RELATION 2200/atacc1
[constraints] LOG:  CREATING RELATION 2200/atacc1
[alter_table] LOG:  CREATING RELATION 2200/atacc1_id_seq
[constraints] LOG:  CREATING RELATION 2200/atacc2
[constraints] LOG:  CREATING RELATION 2200/atacc2
[alter_table] LOG:  CREATING RELATION 2200/atacc2_id_key

live hazard:
[join] LOG:  CREATING RELATION 2200/bar
[transactions] LOG:  CREATING RELATION 2200/bar
[transactions] LOG:  CREATING RELATION 2200/barbaz
[transactions] LOG:  CREATING RELATION 2200/baz


[bitmapops] LOG:  CREATING RELATION 2200/bmscantest
[select_parallel] LOG:  CREATING RELATION 2200/bmscantest


[alter_table] LOG:  CREATING RELATION 2200/c1
[alter_table] LOG:  CREATING RELATION 2200/c1
[alter_table] LOG:  CREATING RELATION 2200/c1
[alter_table] LOG:  CREATING RELATION 2200/c1
[alter_table] LOG:  CREATING RELATION 2200/c1
[inherit] LOG:  CREATING RELATION 2200/c1
[inherit] LOG:  CREATING RELATION 2200/c1
[inherit] LOG:  CREATING RELATION 2200/c1
[inherit] LOG:  CREATING RELATION 2200/c2
[inherit] LOG:  CREATING RELATION 2200/c2
[inherit] LOG:  CREATING RELATION 2200/c3

[alter_table] LOG:  CREATING RELATION 2200/child
[alter_table] LOG:  CREATING RELATION 2200/child
[alter_table] LOG:  CREATING RELATION 2200/child
[triggers] LOG:  CREATING RELATION 2200/child
[triggers] LOG:  CREATING RELATION 2200/child
[triggers] LOG:  CREATING RELATION 2200/child1
[triggers] LOG:  CREATING RELATION 2200/child1
[triggers] LOG:  CREATING RELATION 2200/child2
[triggers] LOG:  CREATING RELATION 2200/child2
[triggers] LOG:  CREATING RELATION 2200/child3
[triggers] LOG:  CREATING RELATION 2200/child3
[alter_table] LOG:  CREATING RELATION 2200/child_noinh_convalid

[arrays] LOG:  CREATING RELATION 2200/comptable
[arrays] LOG:  CREATING RELATION 2200/comptype
[domain] LOG:  CREATING RELATION 2200/comptype
[domain] LOG:  CREATING RELATION 2200/comptype
[domain] LOG:  CREATING RELATION 2200/comptype

[alter_table] LOG:  CREATING RELATION 2200/fail_part
[alter_table] LOG:  CREATING RELATION 2200/fail_part
[create_table] LOG:  CREATING RELATION 2200/fail_part
[create_table] LOG:  CREATING RELATION 2200/fail_part
[create_table] LOG:  CREATING RELATION 2200/fail_part_col_not_found

live hazard join vs transactions:
[join] LOG:  CREATING RELATION 2200/foo
[rangefuncs] LOG:  CREATING RELATION 2200/foo
[rules] LOG:  CREATING RELATION 2200/foo
[transactions] LOG:  CREATING RELATION 2200/foo
[rangefuncs] LOG:  CREATING RELATION 2200/foo2
[rangefuncs] LOG:  CREATING RELATION 2200/foo2
[rules] LOG:  CREATING RELATION 2200/foo2
[rangefuncs] LOG:  CREATING RELATION 2200/foo_pkey
[rangefuncs] LOG:  CREATING RELATION 2200/foo_rescan_t
[sequence] LOG:  CREATING RELATION 2200/foo_seq
[transactions] LOG:  CREATING RELATION 2200/foobar
[rules] LOG:  CREATING RELATION 2200/fooview
[rules] LOG:  CREATING RELATION 2200/fooview
[rules] LOG:  CREATING RELATION 2200/fooview
[rules] LOG:  CREATING RELATION 2200/fooview_part

[alter_table] LOG:  CREATING RELATION 2200/hash_parted
[create_table] LOG:  CREATING RELATION 2200/hash_parted
[insert] LOG:  CREATING RELATION 2200/hash_parted
[update] LOG:  CREATING RELATION 2200/hash_parted
[create_table] LOG:  CREATING RELATION 2200/hash_parted2

[insert] LOG:  CREATING RELATION 2200/hpart0
[insert] LOG:  CREATING RELATION 2200/hpart1
[update] LOG:  CREATING RELATION 2200/hpart1
[insert] LOG:  CREATING RELATION 2200/hpart2
[update] LOG:  CREATING RELATION 2200/hpart2
[insert] LOG:  CREATING RELATION 2200/hpart3
[update] LOG:  CREATING RELATION 2200/hpart3
[update] LOG:  CREATING RELATION 2200/hpart4
[alter_table] LOG:  CREATING RELATION 2200/hpart_1
[create_table] LOG:  CREATING RELATION 2200/hpart_1
[alter_table] LOG:  CREATING RELATION 2200/hpart_2
[create_table] LOG:  CREATING RELATION 2200/hpart_2
[create_table] LOG:  CREATING RELATION 2200/hpart_3
[alter_table] LOG:  CREATING RELATION 2200/hpart_5
[alter_table] LOG:  CREATING RELATION 2200/hpart_5_a

[update] LOG:  CREATING RELATION 2200/list_part1
[update] LOG:  CREATING RELATION 2200/list_part1
[plancache] LOG:  CREATING RELATION 2200/list_part_1
[plancache] LOG:  CREATING RELATION 2200/list_part_2
[plancache] LOG:  CREATING RELATION 2200/list_part_def
[plancache] LOG:  CREATING RELATION 2200/list_part_null
[alter_table] LOG:  CREATING RELATION 2200/list_parted
[create_table] LOG:  CREATING RELATION 2200/list_parted
[inherit] LOG:  CREATING RELATION 2200/list_parted
[insert] LOG:  CREATING RELATION 2200/list_parted
[insert] LOG:  CREATING RELATION 2200/list_parted
[plancache] LOG:  CREATING RELATION 2200/list_parted
[update] LOG:  CREATING RELATION 2200/list_parted
[update] LOG:  CREATING RELATION 2200/list_parted
[alter_table] LOG:  CREATING RELATION 2200/list_parted2
[create_table] LOG:  CREATING RELATION 2200/list_parted2
[alter_table] LOG:  CREATING RELATION 2200/list_parted2_def
[create_table] LOG:  CREATING RELATION 2200/list_parted2_def

[inherit] LOG:  CREATING RELATION 2200/mcrparted
[insert] LOG:  CREATING RELATION 2200/mcrparted
[insert] LOG:  CREATING RELATION 2200/mcrparted
[inherit] LOG:  CREATING RELATION 2200/mcrparted0
[insert] LOG:  CREATING RELATION 2200/mcrparted0
[insert] LOG:  CREATING RELATION 2200/mcrparted0
[inherit] LOG:  CREATING RELATION 2200/mcrparted1
[insert] LOG:  CREATING RELATION 2200/mcrparted1
[insert] LOG:  CREATING RELATION 2200/mcrparted1_lt_b
[inherit] LOG:  CREATING RELATION 2200/mcrparted2
[insert] LOG:  CREATING RELATION 2200/mcrparted2
[insert] LOG:  CREATING RELATION 2200/mcrparted2
[insert] LOG:  CREATING RELATION 2200/mcrparted2_b
[inherit] LOG:  CREATING RELATION 2200/mcrparted3
[insert] LOG:  CREATING RELATION 2200/mcrparted3
[insert] LOG:  CREATING RELATION 2200/mcrparted3_c_to_common
[inherit] LOG:  CREATING RELATION 2200/mcrparted4
[insert] LOG:  CREATING RELATION 2200/mcrparted4
[insert] LOG:  CREATING RELATION 2200/mcrparted4
[insert] LOG:  CREATING RELATION 2200/mcrparted4_common_lt_0
[inherit] LOG:  CREATING RELATION 2200/mcrparted5
[insert] LOG:  CREATING RELATION 2200/mcrparted5
[insert] LOG:  CREATING RELATION 2200/mcrparted5_common_0_to_10
[insert] LOG:  CREATING RELATION 2200/mcrparted6_common_ge_10
[insert] LOG:  CREATING RELATION 2200/mcrparted7_gt_common_lt_d
[insert] LOG:  CREATING RELATION 2200/mcrparted8_ge_d
[inherit] LOG:  CREATING RELATION 2200/mcrparted_def

[insert] LOG:  CREATING RELATION 2200/mlparted
[insert] LOG:  CREATING RELATION 2200/mlparted1
[insert] LOG:  CREATING RELATION 2200/mlparted11
[insert] LOG:  CREATING RELATION 2200/mlparted12
[insert] LOG:  CREATING RELATION 2200/mlparted2
[insert] LOG:  CREATING RELATION 2200/mlparted3
[insert] LOG:  CREATING RELATION 2200/mlparted4
[insert] LOG:  CREATING RELATION 2200/mlparted5
[insert] LOG:  CREATING RELATION 2200/mlparted5a
[insert] LOG:  CREATING RELATION 2200/mlparted_def
[insert] LOG:  CREATING RELATION 2200/mlparted_def1
[insert] LOG:  CREATING RELATION 2200/mlparted_def2
[insert] LOG:  CREATING RELATION 2200/mlparted_defd
[inherit] LOG:  CREATING RELATION 2200/mlparted_tab
[inherit] LOG:  CREATING RELATION 2200/mlparted_tab_part1
[inherit] LOG:  CREATING RELATION 2200/mlparted_tab_part2
[inherit] LOG:  CREATING RELATION 2200/mlparted_tab_part2a
[inherit] LOG:  CREATING RELATION 2200/mlparted_tab_part2b
[inherit] LOG:  CREATING RELATION 2200/mlparted_tab_part3

[alter_table] LOG:  CREATING RELATION 2200/p
[alter_table] LOG:  CREATING RELATION 2200/p1
[alter_table] LOG:  CREATING RELATION 2200/p1
[alter_table] LOG:  CREATING RELATION 2200/p1
[alter_table] LOG:  CREATING RELATION 2200/p1
[alter_table] LOG:  CREATING RELATION 2200/p1
[alter_table] LOG:  CREATING RELATION 2200/p1
[alter_table] LOG:  CREATING RELATION 2200/p1
[inherit] LOG:  CREATING RELATION 2200/p1
[inherit] LOG:  CREATING RELATION 2200/p1
[inherit] LOG:  CREATING RELATION 2200/p1
[inherit] LOG:  CREATING RELATION 2200/p1
[alter_table] LOG:  CREATING RELATION 2200/p11
[inherit] LOG:  CREATING RELATION 2200/p1_c1
[alter_table] LOG:  CREATING RELATION 2200/p2
[inherit] LOG:  CREATING RELATION 2200/p2
[inherit] LOG:  CREATING RELATION 2200/p2

[alter_table] LOG:  CREATING RELATION 2200/parent
[alter_table] LOG:  CREATING RELATION 2200/parent
[alter_table] LOG:  CREATING RELATION 2200/parent
[alter_table] LOG:  CREATING RELATION 2200/parent
[triggers] LOG:  CREATING RELATION 2200/parent
[triggers] LOG:  CREATING RELATION 2200/parent
[triggers] LOG:  CREATING RELATION 2200/parent
[triggers] LOG:  CREATING RELATION 2200/parent
[triggers] LOG:  CREATING RELATION 2200/parent_b_idx
[alter_table] LOG:  CREATING RELATION 2200/parent_noinh_convalid
[create_table] LOG:  CREATING RELATION 2200/part0
[create_table] LOG:  CREATING RELATION 2200/part00
[alter_table] LOG:  CREATING RELATION 2200/part1
[create_table] LOG:  CREATING RELATION 2200/part1
[insert] LOG:  CREATING RELATION 2200/part1
[create_table] LOG:  CREATING RELATION 2200/part10
[create_table] LOG:  CREATING RELATION 2200/part11
[create_table] LOG:  CREATING RELATION 2200/part12
[alter_table] LOG:  CREATING RELATION 2200/part2
[create_table] LOG:  CREATING RELATION 2200/part2
[insert] LOG:  CREATING RELATION 2200/part2
[create_table] LOG:  CREATING RELATION 2200/part2_1
[alter_table] LOG:  CREATING RELATION 2200/part3
[create_table] LOG:  CREATING RELATION 2200/part3
[insert] LOG:  CREATING RELATION 2200/part3
[create_table] LOG:  CREATING RELATION 2200/part4
[insert] LOG:  CREATING RELATION 2200/part4
[alter_table] LOG:  CREATING RELATION 2200/part5_def
[alter_table] LOG:  CREATING RELATION 2200/part5_def_p1
[alter_table] LOG:  CREATING RELATION 2200/part5_p1
[alter_table] LOG:  CREATING RELATION 2200/part_1
[create_table] LOG:  CREATING RELATION 2200/part_1
[inherit] LOG:  CREATING RELATION 2200/part_10_20
[inherit] LOG:  CREATING RELATION 2200/part_10_20_ab
[inherit] LOG:  CREATING RELATION 2200/part_10_20_cd
[inherit] LOG:  CREATING RELATION 2200/part_1_10
[inherit] LOG:  CREATING RELATION 2200/part_1_10_ab
[inherit] LOG:  CREATING RELATION 2200/part_1_10_cd
[alter_table] LOG:  CREATING RELATION 2200/part_2
[create_table] LOG:  CREATING RELATION 2200/part_2
[inherit] LOG:  CREATING RELATION 2200/part_21_30
[inherit] LOG:  CREATING RELATION 2200/part_21_30_ab
[inherit] LOG:  CREATING RELATION 2200/part_21_30_cd
[alter_table] LOG:  CREATING RELATION 2200/part_3
[alter_table] LOG:  CREATING RELATION 2200/part_3_4
[inherit] LOG:  CREATING RELATION 2200/part_40_inf
[inherit] LOG:  CREATING RELATION 2200/part_40_inf_ab
[inherit] LOG:  CREATING RELATION 2200/part_40_inf_cd
[inherit] LOG:  CREATING RELATION 2200/part_40_inf_null
[alter_table] LOG:  CREATING RELATION 2200/part_5
[alter_table] LOG:  CREATING RELATION 2200/part_55_66
[alter_table] LOG:  CREATING RELATION 2200/part_5_a
[alter_table] LOG:  CREATING RELATION 2200/part_6
[alter_table] LOG:  CREATING RELATION 2200/part_7
[alter_table] LOG:  CREATING RELATION 2200/part_7_a_null
[create_table] LOG:  CREATING RELATION 2200/part_a
[update] LOG:  CREATING RELATION 2200/part_a_10_a_20
[update] LOG:  CREATING RELATION 2200/part_a_1_a_10
[insert] LOG:  CREATING RELATION 2200/part_aa_bb
[create_table] LOG:  CREATING RELATION 2200/part_ab
[inherit] LOG:  CREATING RELATION 2200/part_ab_cd
[create_table] LOG:  CREATING RELATION 2200/part_b
[update] LOG:  CREATING RELATION 2200/part_b_10_b_20
[update] LOG:  CREATING RELATION 2200/part_b_1_b_10
[update] LOG:  CREATING RELATION 2200/part_b_20_b_30
[create_table] LOG:  CREATING RELATION 2200/part_c
[update] LOG:  CREATING RELATION 2200/part_c_100_200
[create_table] LOG:  CREATING RELATION 2200/part_c_1_10
[update] LOG:  CREATING RELATION 2200/part_c_1_100
[insert] LOG:  CREATING RELATION 2200/part_cc_dd
[insert_conflict] LOG:  CREATING RELATION 2200/part_comp_key_index
[update] LOG:  CREATING RELATION 2200/part_d_15_20
[update] LOG:  CREATING RELATION 2200/part_d_1_15
[insert] LOG:  CREATING RELATION 2200/part_def
[update] LOG:  CREATING RELATION 2200/part_def
[create_table] LOG:  CREATING RELATION 2200/part_default
[insert] LOG:  CREATING RELATION 2200/part_default
[insert] LOG:  CREATING RELATION 2200/part_default
[insert] LOG:  CREATING RELATION 2200/part_default
[insert] LOG:  CREATING RELATION 2200/part_default_p1
[insert] LOG:  CREATING RELATION 2200/part_default_p2
[insert] LOG:  CREATING RELATION 2200/part_ee_ff
[insert] LOG:  CREATING RELATION 2200/part_ee_ff1
[insert] LOG:  CREATING RELATION 2200/part_ee_ff2
[insert] LOG:  CREATING RELATION 2200/part_ee_ff3
[insert] LOG:  CREATING RELATION 2200/part_ee_ff3_1
[insert] LOG:  CREATING RELATION 2200/part_ee_ff3_2
[inherit] LOG:  CREATING RELATION 2200/part_ef_gh
[create_table] LOG:  CREATING RELATION 2200/part_forced_oids
[insert] LOG:  CREATING RELATION 2200/part_gg
[insert] LOG:  CREATING RELATION 2200/part_gg1
[insert] LOG:  CREATING RELATION 2200/part_gg2
[insert] LOG:  CREATING RELATION 2200/part_gg2_1
[insert] LOG:  CREATING RELATION 2200/part_gg2_2
[create_table] LOG:  CREATING RELATION 2200/part_null
[insert] LOG:  CREATING RELATION 2200/part_null
[inherit] LOG:  CREATING RELATION 2200/part_null_xy
[create_table] LOG:  CREATING RELATION 2200/part_null_z
[alter_table] LOG:  CREATING RELATION 2200/part_rp
[insert] LOG:  CREATING RELATION 2200/part_xx_yy
[insert] LOG:  CREATING RELATION 2200/part_xx_yy_defpart
[insert] LOG:  CREATING RELATION 2200/part_xx_yy_p1
[create_table] LOG:  CREATING RELATION 2200/parted
[triggers] LOG:  CREATING RELATION 2200/parted2_stmt_trig
[triggers] LOG:  CREATING RELATION 2200/parted2_stmt_trig1
[triggers] LOG:  CREATING RELATION 2200/parted2_stmt_trig2
[create_table] LOG:  CREATING RELATION 2200/parted_col_comment
[insert_conflict] LOG:  CREATING RELATION 2200/parted_conflict_test
[insert_conflict] LOG:  CREATING RELATION 2200/parted_conflict_test_1
[insert_conflict] LOG:  CREATING RELATION 2200/parted_conflict_test_1_b_key
[inherit] LOG:  CREATING RELATION 2200/parted_minmax
[inherit] LOG:  CREATING RELATION 2200/parted_minmax1
[inherit] LOG:  CREATING RELATION 2200/parted_minmax1i
[alter_table] LOG:  CREATING RELATION 2200/parted_no_parts
[tablesample] LOG:  CREATING RELATION 2200/parted_sample
[tablesample] LOG:  CREATING RELATION 2200/parted_sample_1
[tablesample] LOG:  CREATING RELATION 2200/parted_sample_2
[triggers] LOG:  CREATING RELATION 2200/parted_stmt_trig
[triggers] LOG:  CREATING RELATION 2200/parted_stmt_trig1
[triggers] LOG:  CREATING RELATION 2200/parted_stmt_trig2
[inherit] LOG:  CREATING RELATION 2200/parted_tab
[inherit] LOG:  CREATING RELATION 2200/parted_tab_part1
[inherit] LOG:  CREATING RELATION 2200/parted_tab_part2
[inherit] LOG:  CREATING RELATION 2200/parted_tab_part3
[rules] LOG:  CREATING RELATION 2200/parted_table
[rules] LOG:  CREATING RELATION 2200/parted_table_1
[alter_table] LOG:  CREATING RELATION 2200/parted_validate_test
[alter_table] LOG:  CREATING RELATION 2200/parted_validate_test_1
[insert_conflict] LOG:  CREATING RELATION 2200/partial_key_index
[alter_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned
[create_table] LOG:  CREATING RELATION 2200/partitioned2
[plpgsql] LOG:  CREATING RELATION 2200/partitioned_table

[updatable_views] LOG:  CREATING RELATION 2200/pt
[foreign_data] LOG:  CREATING RELATION 2200/pt1
[join] LOG:  CREATING RELATION 2200/pt1
[updatable_views] LOG:  CREATING RELATION 2200/pt1
[updatable_views] LOG:  CREATING RELATION 2200/pt11
[join] LOG:  CREATING RELATION 2200/pt1p1
[join] LOG:  CREATING RELATION 2200/pt1p1p1
[join] LOG:  CREATING RELATION 2200/pt1p2
[foreign_data] LOG:  CREATING RELATION 2200/pt2
[foreign_data] LOG:  CREATING RELATION 2200/pt2_1
[foreign_data] LOG:  CREATING RELATION 2200/pt2_1
[foreign_data] LOG:  CREATING RELATION 2200/pt2_1
[plpgsql] LOG:  CREATING RELATION 2200/pt_part1
[plpgsql] LOG:  CREATING RELATION 2200/pt_part2

[inherit] LOG:  CREATING RELATION 2200/range_list_parted
[alter_table] LOG:  CREATING RELATION 2200/range_parted
[create_table] LOG:  CREATING RELATION 2200/range_parted
[insert] LOG:  CREATING RELATION 2200/range_parted
[update] LOG:  CREATING RELATION 2200/range_parted
[alter_table] LOG:  CREATING RELATION 2200/range_parted2
[create_table] LOG:  CREATING RELATION 2200/range_parted2
[create_table] LOG:  CREATING RELATION 2200/range_parted3
[create_table] LOG:  CREATING RELATION 2200/range_parted4
[create_table] LOG:  CREATING RELATION 2200/range_parted4_1
[create_table] LOG:  CREATING RELATION 2200/range_parted4_2
[create_table] LOG:  CREATING RELATION 2200/range_parted4_3

[sequence] LOG:  CREATING RELATION 2200/seq
[updatable_views] LOG:  CREATING RELATION 2200/seq
[sequence] LOG:  CREATING RELATION 2200/seq2
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3
[sequence] LOG:  CREATING RELATION 2200/seq3

[join] LOG:  CREATING RELATION 2200/t1
[privileges] LOG:  CREATING RELATION 2200/t1
[updatable_views] LOG:  CREATING RELATION 2200/t1
[updatable_views] LOG:  CREATING RELATION 2200/t1
[updatable_views] LOG:  CREATING RELATION 2200/t1
[updatable_views] LOG:  CREATING RELATION 2200/t11
[updatable_views] LOG:  CREATING RELATION 2200/t111
[updatable_views] LOG:  CREATING RELATION 2200/t111_a_idx
[updatable_views] LOG:  CREATING RELATION 2200/t11_a_idx
[updatable_views] LOG:  CREATING RELATION 2200/t12
[updatable_views] LOG:  CREATING RELATION 2200/t12_a_idx
[updatable_views] LOG:  CREATING RELATION 2200/t1_a_idx
[privileges] LOG:  CREATING RELATION 2200/t1_pkey
[join] LOG:  CREATING RELATION 2200/t2
[updatable_views] LOG:  CREATING RELATION 2200/t2
[join] LOG:  CREATING RELATION 2200/t3
[alter_table] LOG:  CREATING RELATION 2200/tab1
[alter_table] LOG:  CREATING RELATION 2200/tab2
[triggers] LOG:  CREATING RELATION 2200/table1
[triggers] LOG:  CREATING RELATION 2200/table2

[alter_table] LOG:  CREATING RELATION 2200/test
[with] LOG:  CREATING RELATION 2200/test
[alter_table] LOG:  CREATING RELATION 2200/test1
[copyselect] LOG:  CREATING RELATION 2200/test1
[privileges] LOG:  CREATING RELATION 2200/test10b
[privileges] LOG:  CREATING RELATION 2200/test11b
[copyselect] LOG:  CREATING RELATION 2200/test1_id_seq
[alter_table] LOG:  CREATING RELATION 2200/test2
[copyselect] LOG:  CREATING RELATION 2200/test2
[copyselect] LOG:  CREATING RELATION 2200/test2_id_seq
[copyselect] LOG:  CREATING RELATION 2200/test3
[privileges] LOG:  CREATING RELATION 2200/test5b
[privileges] LOG:  CREATING RELATION 2200/test6b
[privileges] LOG:  CREATING RELATION 2200/test7b
[privileges] LOG:  CREATING RELATION 2200/test8a
[privileges] LOG:  CREATING RELATION 2200/test8b
[privileges] LOG:  CREATING RELATION 2200/test9a
[privileges] LOG:  CREATING RELATION 2200/test9b
[rules] LOG:  CREATING RELATION 2200/test_1
[rules] LOG:  CREATING RELATION 2200/test_1_pkey
[rules] LOG:  CREATING RELATION 2200/test_2
[rules] LOG:  CREATING RELATION 2200/test_2_pkey
[rules] LOG:  CREATING RELATION 2200/test_3
[rules] LOG:  CREATING RELATION 2200/test_3_pkey
[alter_table] LOG:  CREATING RELATION 2200/test_add_column
[inherit] LOG:  CREATING RELATION 2200/test_constraints
[inherit] LOG:  CREATING RELATION 2200/test_constraints_inh
[inherit] LOG:  CREATING RELATION 2200/test_constraints_val1_val2_key
[alter_table] LOG:  CREATING RELATION 2200/test_drop_constr_child
[alter_table] LOG:  CREATING RELATION 2200/test_drop_constr_parent
[inherit] LOG:  CREATING RELATION 2200/test_ex_constraints
[inherit] LOG:  CREATING RELATION 2200/test_ex_constraints_c_excl
[inherit] LOG:  CREATING RELATION 2200/test_ex_constraints_inh
[drop_if_exists] LOG:  CREATING RELATION 2200/test_exists
[inherit] LOG:  CREATING RELATION 2200/test_foreign_constraints
[inherit] LOG:  CREATING RELATION 2200/test_foreign_constraints_inh
[select_having] LOG:  CREATING RELATION 2200/test_having
[drop_if_exists] LOG:  CREATING RELATION 2200/test_index_exists
[alter_table] LOG:  CREATING RELATION 2200/test_inh_check
[alter_table] LOG:  CREATING RELATION 2200/test_inh_check_child
[create_table_like] LOG:  CREATING RELATION 2200/test_like_id_1
[create_table_like] LOG:  CREATING RELATION 2200/test_like_id_1_a_seq
[create_table_like] LOG:  CREATING RELATION 2200/test_like_id_2
[create_table_like] LOG:  CREATING RELATION 2200/test_like_id_3
[create_table_like] LOG:  CREATING RELATION 2200/test_like_id_3_a_seq
[select_implicit] LOG:  CREATING RELATION 2200/test_missing_target
[select_implicit] LOG:  CREATING RELATION 2200/test_missing_target2
[select_implicit] LOG:  CREATING RELATION 2200/test_missing_target3
[inherit] LOG:  CREATING RELATION 2200/test_primary_constraints
[inherit] LOG:  CREATING RELATION 2200/test_primary_constraints_pkey
[rangetypes] LOG:  CREATING RELATION 2200/test_range_elem
[rangetypes] LOG:  CREATING RELATION 2200/test_range_elem_idx
[rangetypes] LOG:  CREATING RELATION 2200/test_range_excl
[rangetypes] LOG:  CREATING RELATION 2200/test_range_excl_room_during_excl
[rangetypes] LOG:  CREATING RELATION 2200/test_range_excl_speaker_during_excl
[rangetypes] LOG:  CREATING RELATION 2200/test_range_gist
[rangetypes] LOG:  CREATING RELATION 2200/test_range_gist_idx
[rangetypes] LOG:  CREATING RELATION 2200/test_range_gist_idx
[rangetypes] LOG:  CREATING RELATION 2200/test_range_spgist
[rangetypes] LOG:  CREATING RELATION 2200/test_range_spgist_idx
[rangetypes] LOG:  CREATING RELATION 2200/test_range_spgist_idx
[sequence] LOG:  CREATING RELATION 2200/test_seq1
[alter_table] LOG:  CREATING RELATION 2200/test_storage
[tablesample] LOG:  CREATING RELATION 2200/test_tablesample
[tablesample] LOG:  CREATING RELATION 2200/test_tablesample_v1
[tablesample] LOG:  CREATING RELATION 2200/test_tablesample_v2
[alter_table] LOG:  CREATING RELATION 2200/test_tbl1
[alter_table] LOG:  CREATING RELATION 2200/test_tbl2
[alter_table] LOG:  CREATING RELATION 2200/test_tbl2_subclass
[alter_table] LOG:  CREATING RELATION 2200/test_tbl3
[alter_table] LOG:  CREATING RELATION 2200/test_tblx
[tsearch] LOG:  CREATING RELATION 2200/test_tsquery
[create_table] LOG:  CREATING RELATION 2200/test_tsvector
[alter_table] LOG:  CREATING RELATION 2200/test_type
[alter_table] LOG:  CREATING RELATION 2200/test_type1
[alter_table] LOG:  CREATING RELATION 2200/test_type2
[alter_table] LOG:  CREATING RELATION 2200/test_type3
[alter_table] LOG:  CREATING RELATION 2200/test_type_diff
[alter_table] LOG:  CREATING RELATION 2200/test_type_diff2
[alter_table] LOG:  CREATING RELATION 2200/test_type_diff2_c1
[alter_table] LOG:  CREATING RELATION 2200/test_type_diff2_c2
[alter_table] LOG:  CREATING RELATION 2200/test_type_diff2_c3
[alter_table] LOG:  CREATING RELATION 2200/test_type_diff_c
[alter_table] LOG:  CREATING RELATION 2200/test_type_empty
[drop_if_exists] LOG:  CREATING RELATION 2200/test_type_exists
[alter_table] LOG:  CREATING RELATION 2200/test_typex
[drop_if_exists] LOG:  CREATING RELATION 2200/test_view_exists
[combocid] LOG:  CREATING RELATION 2200/testcase
[combocid] LOG:  CREATING RELATION 2200/testcase_pkey
[create_table] LOG:  CREATING RELATION 2200/testjsonb
[insert_conflict] LOG:  CREATING RELATION 2200/testoids
[insert_conflict] LOG:  CREATING RELATION 2200/testoids_pkey
[publication] LOG:  CREATING RELATION 2200/testpub_parted
[publication] LOG:  CREATING RELATION 2200/testpub_tbl1
[publication] LOG:  CREATING RELATION 2200/testpub_tbl1_id_seq
[publication] LOG:  CREATING RELATION 2200/testpub_tbl1_pkey
[publication] LOG:  CREATING RELATION 2200/testpub_tbl2
[publication] LOG:  CREATING RELATION 2200/testpub_tbl2_id_seq
[publication] LOG:  CREATING RELATION 2200/testpub_tbl2_pkey
[publication] LOG:  CREATING RELATION 2200/testpub_tbl3
[publication] LOG:  CREATING RELATION 2200/testpub_tbl3a
[publication] LOG:  CREATING RELATION 2200/testpub_view
[rolenames] LOG:  CREATING RELATION 2200/testtab1
[rolenames] LOG:  CREATING RELATION 2200/testtab2
[rolenames] LOG:  CREATING RELATION 2200/testtab3
[rolenames] LOG:  CREATING RELATION 2200/testtab4
[rolenames] LOG:  CREATING RELATION 2200/testtab5
[rolenames] LOG:  CREATING RELATION 2200/testtab6
[privileges] LOG:  CREATING RELATION 2200/testtype1
[rowtypes] LOG:  CREATING RELATION 2200/testtype1
[rowtypes] LOG:  CREATING RELATION 2200/testtype1
[rowtypes] LOG:  CREATING RELATION 2200/testtype2
[rowtypes] LOG:  CREATING RELATION 2200/testtype3
[rowtypes] LOG:  CREATING RELATION 2200/testtype3
[rowtypes] LOG:  CREATING RELATION 2200/testtype4
[rowtypes] LOG:  CREATING RELATION 2200/testtype5
[rowtypes] LOG:  CREATING RELATION 2200/testtype5
[rowtypes] LOG:  CREATING RELATION 2200/testtype6
[rowtypes] LOG:  CREATING RELATION 2200/testtype6

[alter_table] LOG:  CREATING RELATION 2200/tmp
[alter_table] LOG:  CREATING RELATION 2200/tmp
[alter_table] LOG:  CREATING RELATION 2200/tmp
[alter_table] LOG:  CREATING RELATION 2200/tmp
[constraints] LOG:  CREATING RELATION 2200/tmp
[select] LOG:  CREATING RELATION 2200/tmp
[select_into] LOG:  CREATING RELATION 2200/tmp1
[select_into] LOG:  CREATING RELATION 2200/tmp1
[alter_table] LOG:  CREATING RELATION 2200/tmp2
[alter_table] LOG:  CREATING RELATION 2200/tmp2_pkey
[alter_table] LOG:  CREATING RELATION 2200/tmp3
[alter_table] LOG:  CREATING RELATION 2200/tmp4
[alter_table] LOG:  CREATING RELATION 2200/tmp4_a_b_key
[alter_table] LOG:  CREATING RELATION 2200/tmp5
[alter_table] LOG:  CREATING RELATION 2200/tmp6
[alter_table] LOG:  CREATING RELATION 2200/tmp7
[alter_table] LOG:  CREATING RELATION 2200/tmp_array
[alter_table] LOG:  CREATING RELATION 2200/tmp_array
[alter_table] LOG:  CREATING RELATION 2200/tmp_array2
[alter_table] LOG:  CREATING RELATION 2200/tmp_idx
[alter_table] LOG:  CREATING RELATION 2200/tmp_view
[indirect_toast] LOG:  CREATING RELATION 2200/toasttest
[strings] LOG:  CREATING RELATION 2200/toasttest
[strings] LOG:  CREATING RELATION 2200/toasttest
[strings] LOG:  CREATING RELATION 2200/toasttest

[alter_table] LOG:  CREATING RELATION 2200/unlogged1
[create_table] LOG:  CREATING RELATION 2200/unlogged1
[alter_table] LOG:  CREATING RELATION 2200/unlogged1_f1_seq
[alter_table] LOG:  CREATING RELATION 2200/unlogged1_pkey
[create_table] LOG:  CREATING RELATION 2200/unlogged1_pkey
[alter_table] LOG:  CREATING RELATION 2200/unlogged2
[create_table] LOG:  CREATING RELATION 2200/unlogged2
[alter_table] LOG:  CREATING RELATION 2200/unlogged2_f1_seq
[alter_table] LOG:  CREATING RELATION 2200/unlogged2_pkey
[create_table] LOG:  CREATING RELATION 2200/unlogged2_pkey
[alter_table] LOG:  CREATING RELATION 2200/unlogged3
[alter_table] LOG:  CREATING RELATION 2200/unlogged3_f1_seq
[alter_table] LOG:  CREATING RELATION 2200/unlogged3_pkey
[create_index] LOG:  CREATING RELATION 2200/unlogged_hash_index
[create_index] LOG:  CREATING RELATION 2200/unlogged_hash_table
[alter_table] LOG:  CREATING RELATION 2200/unparted
[create_table] LOG:  CREATING RELATION 2200/unparted

[alter_table] LOG:  CREATING RELATION 2200/xxx
[with] LOG:  CREATING RELATION 2200/z
[with] LOG:  CREATING RELATION 2200/z_k_key

[alter_generic] LOG:  CREATING ROLE regress_alter_user1
[alter_table] LOG:  CREATING ROLE regress_alter_user1
[alter_generic] LOG:  CREATING ROLE regress_alter_user2
[alter_generic] LOG:  CREATING ROLE regress_alter_user3
[alter_generic] LOG:  CREATING ROLE regress_alter_user5
[alter_generic] LOG:  CREATING ROLE regress_alter_user6

[create_procedure] LOG:  CREATING ROLE regress_user1
[identity] LOG:  CREATING ROLE regress_user1
[privileges] LOG:  CREATING ROLE regress_user1
[privileges] LOG:  CREATING ROLE regress_user2
[privileges] LOG:  CREATING ROLE regress_user3
[privileges] LOG:  CREATING ROLE regress_user4
[privileges] LOG:  CREATING ROLE regress_user5

[rolenames] LOG:  CREATING ROLE session_user
[insert] LOG:  CREATING ROLE someone_else
[rolenames] LOG:  CREATING ROLE user

[create_view] LOG:  CREATING SCHEMA test_schema
[rolenames] LOG:  CREATING SCHEMA test_schema
[namespace] LOG:  CREATING SCHEMA test_schema_1

Some of these test pairs have enough conflicts that it may
not be worth the work to eliminate them.  Not sure just what
to change here.

            regards, tom lane

diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 3d80ff9..59b37fe 100644
*** a/src/backend/catalog/heap.c
--- b/src/backend/catalog/heap.c
***************
*** 40,45 ****
--- 40,46 ----
  #include "catalog/dependency.h"
  #include "catalog/heap.h"
  #include "catalog/index.h"
+ #include "catalog/namespace.h"
  #include "catalog/objectaccess.h"
  #include "catalog/partition.h"
  #include "catalog/pg_attrdef.h"
*************** InsertPgClassTuple(Relation pg_class_des
*** 828,833 ****
--- 829,838 ----
       */
      HeapTupleSetOid(tup, new_rel_oid);

+     if (!isTempNamespace(rd_rel->relnamespace))
+         elog(LOG, "CREATING RELATION %u/%s",
+              rd_rel->relnamespace, RelationGetRelationName(new_rel_desc));
+
      /* finally insert the new tuple, update the indexes, and clean up */
      CatalogTupleInsert(pg_class_desc, tup);

diff --git a/src/backend/catalog/pg_namespace.c b/src/backend/catalog/pg_namespace.c
index 2cf52be..a331b9c 100644
*** a/src/backend/catalog/pg_namespace.c
--- b/src/backend/catalog/pg_namespace.c
*************** NamespaceCreate(const char *nspName, Oid
*** 87,92 ****
--- 87,94 ----

      tup = heap_form_tuple(tupDesc, values, nulls);

+     elog(LOG, "CREATING SCHEMA %s", nspName);
+
      nspoid = CatalogTupleInsert(nspdesc, tup);
      Assert(OidIsValid(nspoid));

diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 466ff03..42b1a2f 100644
*** a/src/backend/catalog/pg_proc.c
--- b/src/backend/catalog/pg_proc.c
***************
*** 18,23 ****
--- 18,24 ----
  #include "access/xact.h"
  #include "catalog/dependency.h"
  #include "catalog/indexing.h"
+ #include "catalog/namespace.h"
  #include "catalog/objectaccess.h"
  #include "catalog/pg_language.h"
  #include "catalog/pg_namespace.h"
*************** ProcedureCreate(const char *procedureNam
*** 576,581 ****
--- 577,587 ----
              nulls[Anum_pg_proc_proacl - 1] = true;

          tup = heap_form_tuple(tupDesc, values, nulls);
+
+         if (!isTempNamespace(procNamespace))
+             elog(LOG, "CREATING FUNCTION %u/%s",
+                  procNamespace, procedureName);
+
          CatalogTupleInsert(rel, tup);
          is_update = false;
      }
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 71c5caa..b66a933 100644
*** a/src/backend/commands/user.c
--- b/src/backend/commands/user.c
*************** CreateRole(ParseState *pstate, CreateRol
*** 440,445 ****
--- 440,447 ----
          binary_upgrade_next_pg_authid_oid = InvalidOid;
      }

+     elog(LOG, "CREATING ROLE %s", stmt->role);
+
      /*
       * Insert new record in the pg_authid table
       */

Re: Instability in parallel regression tests

От
Thomas Munro
Дата:
On Thu, Mar 15, 2018 at 3:32 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> ... I manually filtered
> out a bunch of non-problems, in particular discarding names that are in
> per-test schemas; I think it's all right to allow tests that are taking
> that precaution to do what they like name-wise.

What if we always did that?  That is, create a schema with a name
corresponding to the .sql filename and make it default, as a
convention?  That might be a smaller and more localised change than
renaming all these objects.  It would also provide a convenient way to
drop everything wholesale at the end.

-- 
Thomas Munro
http://www.enterprisedb.com


Re: Instability in parallel regression tests

От
Tom Lane
Дата:
Thomas Munro <thomas.munro@enterprisedb.com> writes:
> On Thu, Mar 15, 2018 at 3:32 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> ... I manually filtered
>> out a bunch of non-problems, in particular discarding names that are in
>> per-test schemas; I think it's all right to allow tests that are taking
>> that precaution to do what they like name-wise.

> What if we always did that?  That is, create a schema with a name
> corresponding to the .sql filename and make it default, as a
> convention?  That might be a smaller and more localised change than
> renaming all these objects.  It would also provide a convenient way to
> drop everything wholesale at the end.

There's a lot of objects that we *want* propagated from earlier tests to
later ones, and/or left around to help with pg_dump testing based on the
final state of the regression database.  I don't think that just dropping
them all would be an improvement.

It might be possible to identify a set of tests that set up persistent
objects as opposed to ones that don't, but it wouldn't be a trivial
task.

            regards, tom lane