Avoid using atooid for numerical comparisons which arent Oids
The check for the number of roles in the target cluster for an upgrade selects the existing roles and performs a COUNT(*) over the result. A value of one is the expected query result value indicating that only the install user is present in the new cluster. The result was converted with the function for converting a string containing an Oid into a numeric, which avoids potential overflow but makes the code less readable since it's not actually an Oid at all. Discussion: https://postgr.es/m/41AB5F1F-4389-4B25-9668-5C430375836C@yesql.se
This commit is contained in:
parent
4c8044c044
commit
106f26a849
@ -568,7 +568,7 @@ check_is_install_user(ClusterInfo *cluster)
|
||||
* users might match users defined in the old cluster and generate an
|
||||
* error during pg_dump restore.
|
||||
*/
|
||||
if (cluster == &new_cluster && atooid(PQgetvalue(res, 0, 0)) != 1)
|
||||
if (cluster == &new_cluster && strcmp(PQgetvalue(res, 0, 0), "1") != 0)
|
||||
pg_fatal("Only the install user can be defined in the new cluster.");
|
||||
|
||||
PQclear(res);
|
||||
|
Loading…
x
Reference in New Issue
Block a user