diff options
author | Daniel Gustafsson | 2024-10-02 11:08:55 +0000 |
---|---|---|
committer | Daniel Gustafsson | 2024-10-02 11:08:55 +0000 |
commit | 9c733951049bf3993c886d7f2c7459e7439a9793 (patch) | |
tree | b2c40a6989ee750b0815a6c8bdd7cfd4b9f0375a | |
parent | 1a123e3b136bf38ebf5f7a97b358306998f8a61f (diff) |
Add fastpaths for when no objects are found
If there are no objects found, there is no reason to inspect the
result columns and mallocing a zero-sized (which will be 1 byte
in reality) heap buffer for it. Add a fast-path for immediately
returning like how other object inspection functions are already
doing it.
Reviewed-by: Ranier Vilela <ranier.vf@gmail.com>
Discussion: https://postgr.es/m/C2F05B3C-1414-45DD-AE09-6FEE4D0F89BD@yesql.se
-rw-r--r-- | src/bin/pg_dump/pg_dump.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index c29a2030af3..4dfb7d1abe4 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -4314,6 +4314,9 @@ getPublications(Archive *fout) ntups = PQntuples(res); + if (ntups == 0) + goto cleanup; + i_tableoid = PQfnumber(res, "tableoid"); i_oid = PQfnumber(res, "oid"); i_pubname = PQfnumber(res, "pubname"); @@ -4352,6 +4355,8 @@ getPublications(Archive *fout) /* Decide whether we want to dump it */ selectDumpableObject(&(pubinfo[i].dobj), fout); } + +cleanup: PQclear(res); destroyPQExpBuffer(query); @@ -5817,7 +5822,7 @@ getExtensions(Archive *fout, int *numExtensions) int ntups; int i; PQExpBuffer query; - ExtensionInfo *extinfo; + ExtensionInfo *extinfo = NULL; int i_tableoid; int i_oid; int i_extname; @@ -5837,6 +5842,8 @@ getExtensions(Archive *fout, int *numExtensions) res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); ntups = PQntuples(res); + if (ntups == 0) + goto cleanup; extinfo = (ExtensionInfo *) pg_malloc(ntups * sizeof(ExtensionInfo)); @@ -5866,6 +5873,7 @@ getExtensions(Archive *fout, int *numExtensions) selectDumpableExtension(&(extinfo[i]), dopt); } +cleanup: PQclear(res); destroyPQExpBuffer(query); |