On Thu, Feb 9, 2017 at 5:13 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote: > here is a patch
Thanks.
- for (sl = dblist; sl; sl = sl->next) - create_database(sl->str); + if (templatelist != NULL) + { + _stringlist *tl; + + for (sl = dblist, tl = templatelist; sl; sl = sl->next, tl = tl->next) + { + if (tl != NULL) + create_database(sl->str, tl->str); + else + { + fprintf(stderr, _("%s: the template list is shorter than database list\n"), + progname); + exit(2); + } + } + } + else + for (sl = dblist; sl; sl = sl->next) + create_database(sl->str, "template0"); There is one problem here: if the length of the template list is shorter than the database list, databases get halfly created, then pg_regress complains, letting the instance in a half-way state. I think that you had better do any sanity checks before creating or even dropping existing databases.
here is new update - check is done before any creating