res=executeQuery(conn,"SELECT datname, coalesce(usename, (select usename from pg_shadow where usesysid=(select datdba from pg_database where datname='template0'))), pg_encoding_to_char(d.encoding), datistemplate, datpath FROM pg_database d LEFT JOIN pg_shadow u ON (datdba = usesysid) WHERE datallowconn ORDER BY 1;");
...
...
@@ -414,6 +427,8 @@ dumpCreateDB(PGconn *conn)
}
printf("%s",buf->data);
destroyPQExpBuffer(buf);
dumpDatabaseConfig(conn,dbname);
}
PQclear(res);
...
...
@@ -422,6 +437,106 @@ dumpCreateDB(PGconn *conn)
/*
* Dump database-specific configuration
*/
staticvoid
dumpDatabaseConfig(PGconn*conn,constchar*dbname)
{
PQExpBufferbuf=createPQExpBuffer();
intcount=1;
for(;;)
{
PGresult*res;
printfPQExpBuffer(buf,"SELECT datconfig[%d] FROM pg_database WHERE datname = ",count);