1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-05 07:21:24 +03:00

Free walmethods before exiting

Not strictly necessary since we quite after, but could become important
in the future if we do restarts etc.

Michael Paquier with nitpicking from me
This commit is contained in:
Magnus Hagander
2016-10-25 18:57:56 +02:00
parent 8c46f0c9ce
commit 78d109150b
4 changed files with 33 additions and 0 deletions

View File

@ -495,6 +495,13 @@ LogStreamerMain(logstreamer_param *param)
}
PQfinish(param->bgconn);
if (format == 'p')
FreeWalDirectoryMethod();
else
FreeWalTarMethod();
pg_free(stream.walmethod);
return 0;
}

View File

@ -352,6 +352,10 @@ StreamLog(void)
}
PQfinish(conn);
FreeWalDirectoryMethod();
pg_free(stream.walmethod);
conn = NULL;
}

View File

@ -299,6 +299,13 @@ CreateWalDirectoryMethod(const char *basedir, bool sync)
return method;
}
void
FreeWalDirectoryMethod(void)
{
pg_free(dir_data->basedir);
pg_free(dir_data);
}
/*-------------------------------------------------------------------------
* WalTarMethod - write wal to a tar file containing pg_xlog contents
@ -894,3 +901,14 @@ CreateWalTarMethod(const char *tarbase, int compression, bool sync)
return method;
}
void
FreeWalTarMethod(void)
{
pg_free(tar_data->tarfilename);
#ifdef HAVE_LIBZ
if (tar_data->compression)
pg_free(tar_data->zlibOut);
#endif
pg_free(tar_data);
}

View File

@ -43,3 +43,7 @@ struct WalWriteMethod
*/
WalWriteMethod *CreateWalDirectoryMethod(const char *basedir, bool sync);
WalWriteMethod *CreateWalTarMethod(const char *tarbase, int compression, bool sync);
/* Cleanup routines for previously-created methods */
void FreeWalDirectoryMethod(void);
void FreeWalTarMethod(void);