The name collision happens when the name of the new partition is the same as the name of one of the merging partitions. Currently, ATExecMergePartitions() first gives the new partition a temporary name and then renames it when old partitions are deleted. That negatively influences the naming of related objects like indexes and constrains, which could inherit a temporary name. This commit changes the implementation in the following way. A merging partition gets renamed first, then the new partition is created with the right name immediately. This resolves the issue of the naming of related objects. Reported-by: Alexander Lakhin Discussion: https://postgr.es/m/edfbd846-dcc1-42d1-ac26-715691b687d3%40postgrespro.ru Author: Dmitry Koval, Alexander Korotkov Reviewed-by: Robert Haas, Justin Pryzby, Pavel Borisov |
||
---|---|---|
.. | ||
data | ||
expected | ||
sql | ||
.gitignore | ||
GNUmakefile | ||
Makefile | ||
README | ||
meson.build | ||
parallel_schedule | ||
pg_regress.c | ||
pg_regress.h | ||
pg_regress_main.c | ||
regress.c | ||
regressplans.sh | ||
resultmap |
README
Documentation concerning how to run these regression tests and interpret the results can be found in the PostgreSQL manual, in the chapter "Regression Tests".