From 18e5addb9697d0ebd6d40e2493fd00ad485dcdac Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Fri, 10 Oct 2003 19:26:25 +0000
Subject: [PATCH] Fix core dump on root starting pg_autovacuum.

Change conditionals to be more constent with our code

if (const == var) => if (var == const).
---
 contrib/pg_autovacuum/pg_autovacuum.c | 118 +++++++++++++-------------
 1 file changed, 60 insertions(+), 58 deletions(-)

diff --git a/contrib/pg_autovacuum/pg_autovacuum.c b/contrib/pg_autovacuum/pg_autovacuum.c
index a874ac7aedb..bd92104a4b0 100644
--- a/contrib/pg_autovacuum/pg_autovacuum.c
+++ b/contrib/pg_autovacuum/pg_autovacuum.c
@@ -70,7 +70,7 @@ init_table_info(PGresult *res, int row, db_info * dbi)
 		return NULL;
 	}
 
-	if (NULL == res)
+	if (res == NULL)
 		return NULL;
 
 	new_tbl->dbi = dbi;			/* set pointer to db */
@@ -146,17 +146,17 @@ update_table_thresholds(db_info * dbi, tbl_info * tbl, int vacuum_type)
 	int			disconnect = 0;
 	char		query[128];
 
-	if (NULL == dbi->conn)
+	if (dbi->conn == NULL)
 	{
 		dbi->conn = db_connect(dbi);
 		disconnect = 1;
 	}
 
-	if (NULL != dbi->conn)
+	if (dbi->conn != NULL)
 	{
 		snprintf(query, sizeof(query), PAGES_QUERY, tbl->relfilenode);
 		res = send_query(query, dbi);
-		if (NULL != res)
+		if (res != NULL)
 		{
 			tbl->reltuples =
 				atoi(PQgetvalue(res, 0, PQfnumber(res, "reltuples")));
@@ -166,7 +166,7 @@ update_table_thresholds(db_info * dbi, tbl_info * tbl, int vacuum_type)
 			 * update vacuum thresholds only of we just did a vacuum
 			 * analyze
 			 */
-			if (VACUUM_ANALYZE == vacuum_type)
+			if (vacuum_type == VACUUM_ANALYZE)
 			{
 				tbl->vacuum_threshold =
 					(args->vacuum_base_threshold + args->vacuum_scaling_factor * tbl->reltuples);
@@ -208,13 +208,13 @@ update_table_list(db_info * dbi)
 				t = 0,
 				found_match = 0;
 
-	if (NULL == dbi->conn)
+	if (dbi->conn == NULL)
 	{
 		dbi->conn = db_connect(dbi);
 		disconnect = 1;
 	}
 
-	if (NULL != dbi->conn)
+	if (dbi->conn != NULL)
 	{
 		/*
 		 * Get a result set that has all the information we will need to
@@ -229,7 +229,7 @@ update_table_list(db_info * dbi)
 		 * the inner loop, this will determine what tables should be
 		 * removed
 		 */
-		while (NULL != tbl_elem)
+		while (tbl_elem != NULL)
 		{
 			tbl = ((tbl_info *) DLE_VAL(tbl_elem));
 			found_match = 0;
@@ -243,7 +243,7 @@ update_table_list(db_info * dbi)
 					break;
 				}
 			}
-			if (0 == found_match)
+			if (found_match == 0)
 			{					/* then we didn't find this tbl_elem in
 								 * the result set */
 				Dlelem	   *elem_to_remove = tbl_elem;
@@ -264,7 +264,7 @@ update_table_list(db_info * dbi)
 		{
 			tbl_elem = DLGetHead(dbi->table_list);
 			found_match = 0;
-			while (NULL != tbl_elem)
+			while (tbl_elem != NULL)
 			{
 				tbl = ((tbl_info *) DLE_VAL(tbl_elem));
 				if (tbl->relfilenode == atoi(PQgetvalue(res, i, PQfnumber(res, "relfilenode"))))
@@ -274,7 +274,7 @@ update_table_list(db_info * dbi)
 				}
 				tbl_elem = DLGetSucc(tbl_elem);
 			}
-			if (0 == found_match)		/* then we didn't find this result
+			if (found_match == 0)		/* then we didn't find this result
 										 * now in the tbl_list */
 			{
 				DLAddTail(dbi->table_list, DLNewElem(init_table_info(res, i, dbi)));
@@ -335,7 +335,7 @@ free_tbl_list(Dllist *tbl_list)
 	Dlelem	   *tbl_elem = DLGetHead(tbl_list);
 	Dlelem	   *tbl_elem_to_remove = NULL;
 
-	while (NULL != tbl_elem)
+	while (tbl_elem != NULL)
 	{
 		tbl_elem_to_remove = tbl_elem;
 		tbl_elem = DLGetSucc(tbl_elem);
@@ -349,7 +349,7 @@ print_table_list(Dllist *table_list)
 {
 	Dlelem	   *table_elem = DLGetHead(table_list);
 
-	while (NULL != table_elem)
+	while (table_elem != NULL)
 	{
 		print_table_info(((tbl_info *) DLE_VAL(table_elem)));
 		table_elem = DLGetSucc(table_elem);
@@ -390,7 +390,7 @@ init_db_list()
 	PGresult   *res = NULL;
 
 	DLAddHead(db_list, DLNewElem(init_dbinfo((char *) "template1", 0, 0)));
-	if (NULL == DLGetHead(db_list))
+	if (DLGetHead(db_list) == NULL)
 	{							/* Make sure init_dbinfo was successful */
 		log_entry("init_db_list(): Error creating db_list for db: template1.");
 		fflush(LOGOUTPUT);
@@ -404,7 +404,7 @@ init_db_list()
 	dbs = ((db_info *) DLE_VAL(DLGetHead(db_list)));
 	dbs->conn = db_connect(dbs);
 
-	if (NULL != dbs->conn)
+	if (dbs->conn != NULL)
 	{
 		res = send_query(FROZENOID_QUERY, dbs);
 		dbs->oid = atoi(PQgetvalue(res, 0, PQfnumber(res, "oid")));
@@ -430,13 +430,13 @@ init_dbinfo(char *dbname, int oid, int age)
 	newdbinfo->dbname = (char *) malloc(strlen(dbname) + 1);
 	strcpy(newdbinfo->dbname, dbname);
 	newdbinfo->username = NULL;
-	if (NULL != args->user)
+	if (args->user != NULL)
 	{
 		newdbinfo->username = (char *) malloc(strlen(args->user) + 1);
 		strcpy(newdbinfo->username, args->user);
 	}
 	newdbinfo->password = NULL;
-	if (NULL != args->password)
+	if (args->password != NULL)
 	{
 		newdbinfo->password = (char *) malloc(strlen(args->password) + 1);
 		strcpy(newdbinfo->password, args->password);
@@ -471,13 +471,13 @@ update_db_list(Dllist *db_list)
 		fflush(LOGOUTPUT);
 	}
 
-	if (NULL == dbi_template1->conn)
+	if (dbi_template1->conn == NULL)
 	{
 		dbi_template1->conn = db_connect(dbi_template1);
 		disconnect = 1;
 	}
 
-	if (NULL != dbi_template1->conn)
+	if (dbi_template1->conn != NULL)
 	{
 		/*
 		 * Get a result set that has all the information we will need to
@@ -492,7 +492,7 @@ update_db_list(Dllist *db_list)
 		 * the inner loop, this will determine what databases should be
 		 * removed
 		 */
-		while (NULL != db_elem)
+		while (db_elem != NULL)
 		{
 			dbi = ((db_info *) DLE_VAL(db_elem));
 			found_match = 0;
@@ -512,7 +512,7 @@ update_db_list(Dllist *db_list)
 					break;
 				}
 			}
-			if (0 == found_match)
+			if (found_match == 0)
 			{					/* then we didn't find this db_elem in the
 								 * result set */
 				Dlelem	   *elem_to_remove = db_elem;
@@ -533,7 +533,7 @@ update_db_list(Dllist *db_list)
 		{
 			db_elem = DLGetHead(db_list);
 			found_match = 0;
-			while (NULL != db_elem)
+			while (db_elem != NULL)
 			{
 				dbi = ((db_info *) DLE_VAL(db_elem));
 				if (dbi->oid == atoi(PQgetvalue(res, i, PQfnumber(res, "oid"))))
@@ -543,7 +543,7 @@ update_db_list(Dllist *db_list)
 				}
 				db_elem = DLGetSucc(db_elem);
 			}
-			if (0 == found_match)		/* then we didn't find this result
+			if (found_match == 0)		/* then we didn't find this result
 										 * now in the tbl_list */
 			{
 				DLAddTail(db_list, DLNewElem(init_dbinfo
@@ -590,7 +590,7 @@ xid_wraparound_check(db_info * dbi)
 	 * 500million xacts to work with so we should be able to spread the
 	 * load of full database vacuums a bit
 	 */
-	if (1500000000 < dbi->age)
+	if (dbi->age > 1500000000 )
 	{
 		PGresult   *res = NULL;
 
@@ -653,7 +653,7 @@ free_db_list(Dllist *db_list)
 	Dlelem	   *db_elem = DLGetHead(db_list);
 	Dlelem	   *db_elem_to_remove = NULL;
 
-	while (NULL != db_elem)
+	while (db_elem != NULL)
 	{
 		db_elem_to_remove = db_elem;
 		db_elem = DLGetSucc(db_elem);
@@ -668,7 +668,7 @@ print_db_list(Dllist *db_list, int print_table_lists)
 {
 	Dlelem	   *db_elem = DLGetHead(db_list);
 
-	while (NULL != db_elem)
+	while (db_elem != NULL)
 	{
 		print_db_info(((db_info *) DLE_VAL(db_elem)), print_table_lists);
 		db_elem = DLGetSucc(db_elem);
@@ -684,13 +684,13 @@ print_db_info(db_info * dbi, int print_tbl_list)
 	sprintf(logbuffer, " oid %i InsertThresh: %i  DeleteThresh: %i", dbi->oid,
 			dbi->analyze_threshold, dbi->vacuum_threshold);
 	log_entry(logbuffer);
-	if (NULL != dbi->conn)
+	if (dbi->conn != NULL)
 		log_entry(" conn is valid, we are connected");
 	else
 		log_entry(" conn is null, we are not connected.");
 
 	fflush(LOGOUTPUT);
-	if (0 < print_tbl_list)
+	if (print_tbl_list > 0)
 		print_table_list(dbi->table_list);
 }
 
@@ -706,7 +706,7 @@ db_connect(db_info * dbi)
 	PQsetdbLogin(args->host, args->port, NULL, NULL, dbi->dbname,
 				 dbi->username, dbi->password);
 
-	if (CONNECTION_OK != PQstatus(db_conn))
+	if (PQstatus(db_conn) != CONNECTION_OK)
 	{
 		sprintf(logbuffer, "Failed connection to database %s with error: %s.",
 				dbi->dbname, PQerrorMessage(db_conn));
@@ -721,7 +721,7 @@ db_connect(db_info * dbi)
 void
 db_disconnect(db_info * dbi)
 {
-	if (NULL != dbi->conn)
+	if (dbi->conn != NULL)
 	{
 		PQfinish(dbi->conn);
 		dbi->conn = NULL;
@@ -731,13 +731,15 @@ db_disconnect(db_info * dbi)
 int
 check_stats_enabled(db_info * dbi)
 {
-	PGresult   *res = NULL;
+	PGresult   *res;
 	int			ret = 0;
 
 	res = send_query("SHOW stats_row_level", dbi);
-	ret =
-		strcmp("on", PQgetvalue(res, 0, PQfnumber(res, "stats_row_level")));
-	PQclear(res);
+	if (res)
+	{
+		ret = strcmp("on", PQgetvalue(res, 0, PQfnumber(res, "stats_row_level")));
+		PQclear(res);
+	}
 	return ret;
 }
 
@@ -746,7 +748,7 @@ send_query(const char *query, db_info * dbi)
 {
 	PGresult   *res;
 
-	if (NULL == dbi->conn)
+	if (dbi->conn == NULL)
 		return NULL;
 
 	if (args->debug >= 4)
@@ -765,8 +767,8 @@ send_query(const char *query, db_info * dbi)
 		fflush(LOGOUTPUT);
 		return NULL;
 	}
-	if (PQresultStatus(res) != PGRES_TUPLES_OK
-		&& PQresultStatus(res) != PGRES_COMMAND_OK)
+	if (PQresultStatus(res) != PGRES_TUPLES_OK &&
+		PQresultStatus(res) != PGRES_COMMAND_OK)
 	{
 		sprintf(logbuffer,
 		  "Can not refresh statistics information from the database %s.",
@@ -785,11 +787,11 @@ send_query(const char *query, db_info * dbi)
 void
 free_cmd_args()
 {
-	if (NULL != args)
+	if (args != NULL)
 	{
-		if (NULL != args->user)
+		if (args->user != NULL)
 			free(args->user);
-		if (NULL != args->user)
+		if (args->password != NULL)
 			free(args->password);
 		free(args);
 	}
@@ -814,7 +816,7 @@ get_cmd_args(int argc, char *argv[])
 	 * Fixme: Should add some sanity checking such as positive integer
 	 * values etc
 	 */
-	while (-1 != (c = getopt(argc, argv, "s:S:v:V:a:A:d:U:P:H:L:p:hD")))
+	while ((c = getopt(argc, argv, "s:S:v:V:a:A:d:U:P:H:L:p:hD")) != -1)
 	{
 		switch (c)
 		{
@@ -876,9 +878,9 @@ get_cmd_args(int argc, char *argv[])
 		 * if values for insert thresholds are not specified, then they
 		 * default to 1/2 of the delete values
 		 */
-		if (-1 == args->analyze_base_threshold)
+		if (args->analyze_base_threshold == -1)
 			args->analyze_base_threshold = args->vacuum_base_threshold / 2;
-		if (-1 == args->analyze_scaling_factor)
+		if (args->analyze_scaling_factor == -1)
 			args->analyze_scaling_factor = args->vacuum_scaling_factor / 2;
 	}
 	return args;
@@ -979,7 +981,7 @@ main(int argc, char *argv[])
 										 * them in the args struct */
 
 	/* Dameonize if requested */
-	if (1 == args->daemonize)
+	if (args->daemonize == 1)
 		daemonize();
 
 	if (args->logfile)
@@ -998,10 +1000,10 @@ main(int argc, char *argv[])
 
 	/* Init the db list with template1 */
 	db_list = init_db_list();
-	if (NULL == db_list)
+	if (db_list == NULL)
 		return 1;
 
-	if (0 != check_stats_enabled(((db_info *) DLE_VAL(DLGetHead(db_list)))))
+	if (check_stats_enabled(((db_info *) DLE_VAL(DLGetHead(db_list)))) != 0)
 	{
 		log_entry("Error: GUC variable stats_row_level must be enabled.");
 		log_entry("       Please fix the problems and try again.");
@@ -1019,10 +1021,10 @@ main(int argc, char *argv[])
 
 		dbs = ((db_info *) DLE_VAL(db_elem));	/* get pointer to cur_db's
 												 * db_info struct */
-		if (NULL == dbs->conn)
+		if (dbs->conn == NULL)
 		{
 			dbs->conn = db_connect(dbs);
-			if (NULL == dbs->conn)
+			if (dbs->conn == NULL)
 			{					/* Serious problem: We can't connect to
 								 * template1 */
 				log_entry("Error: Cannot connect to template1, exiting.");
@@ -1032,27 +1034,27 @@ main(int argc, char *argv[])
 			}
 		}
 
-		if (0 == (loops % UPDATE_INTERVAL))		/* Update the list if it's
+		if (loops % UPDATE_INTERVAL == 0)		/* Update the list if it's
 												 * time */
 			update_db_list(db_list);	/* Add and remove databases from
 										 * the list */
 
-		while (NULL != db_elem)
+		while (db_elem != NULL)
 		{						/* Loop through databases in list */
 			dbs = ((db_info *) DLE_VAL(db_elem));		/* get pointer to
 														 * cur_db's db_info
 														 * struct */
-			if (NULL == dbs->conn)
+			if (dbs->conn == NULL)
 				dbs->conn = db_connect(dbs);
 
-			if (NULL != dbs->conn)
+			if (dbs->conn != NULL)
 			{
-				if (0 == (loops % UPDATE_INTERVAL))		/* Update the list if
+				if (loops % UPDATE_INTERVAL == 0)		/* Update the list if
 														 * it's time */
 					update_table_list(dbs);		/* Add and remove tables
 												 * from the list */
 
-				if (0 == xid_wraparound_check(dbs));
+				if (xid_wraparound_check(dbs) == 0)
 				{
 					res = send_query(TABLE_STATS_QUERY, dbs);	/* Get an updated
 																 * snapshot of this dbs
@@ -1061,7 +1063,7 @@ main(int argc, char *argv[])
 					{			/* loop through result set */
 						tbl_elem = DLGetHead(dbs->table_list);	/* Reset tbl_elem to top
 																 * of dbs->table_list */
-						while (NULL != tbl_elem)
+						while (tbl_elem != NULL)
 						{		/* Loop through tables in list */
 							tbl = ((tbl_info *) DLE_VAL(tbl_elem));		/* set tbl_info =
 																		 * current_table */
@@ -1084,13 +1086,13 @@ main(int argc, char *argv[])
 								 * not big enough for vacuum then check
 								 * numInserts for analyze
 								 */
-								if ((tbl->curr_vacuum_count - tbl->CountAtLastVacuum) >= tbl->vacuum_threshold)
+								if (tbl->curr_vacuum_count - tbl->CountAtLastVacuum >= tbl->vacuum_threshold)
 								{
 									/*
 									 * if relisshared = t and database !=
 									 * template1 then only do an analyze
 									 */
-									if ((tbl->relisshared > 0) && (strcmp("template1", dbs->dbname)))
+									if (tbl->relisshared > 0 && strcmp("template1", dbs->dbname))
 										snprintf(buf, sizeof(buf), "ANALYZE %s", tbl->table_name);
 									else
 										snprintf(buf, sizeof(buf), "VACUUM ANALYZE %s", tbl->table_name);
@@ -1105,7 +1107,7 @@ main(int argc, char *argv[])
 									if (args->debug >= 2)
 										print_table_info(tbl);
 								}
-								else if ((tbl->curr_analyze_count - tbl->CountAtLastAnalyze) >= tbl->analyze_threshold)
+								else if (tbl->curr_analyze_count - tbl->CountAtLastAnalyze >= tbl->analyze_threshold)
 								{
 									snprintf(buf, sizeof(buf), "ANALYZE %s", tbl->table_name);
 									if (args->debug >= 1)
-- 
GitLab