diff --git a/src/backend/optimizer/util/relnode.c b/src/backend/optimizer/util/relnode.c
index 76dad17e33..e4bc25282d 100644
--- a/src/backend/optimizer/util/relnode.c
+++ b/src/backend/optimizer/util/relnode.c
@@ -406,9 +406,12 @@ find_base_rel(PlannerInfo *root, int relid)
 {
 	RelOptInfo *rel;
 
-	Assert(relid > 0);
-
-	if (relid < root->simple_rel_array_size)
+	/*
+	 * Cant't accept negative relid values,
+	 * So cast to unsigned to protect lower limits of
+	 * simple_rel_array
+	 */
+	if ((uint32) relid < (uint32) root->simple_rel_array_size)
 	{
 		rel = root->simple_rel_array[relid];
 		if (rel)
@@ -432,9 +435,12 @@ find_base_rel(PlannerInfo *root, int relid)
 RelOptInfo *
 find_base_rel_ignore_join(PlannerInfo *root, int relid)
 {
-	Assert(relid > 0);
-
-	if (relid < root->simple_rel_array_size)
+	/*
+	 * Cant't accept negative relid values,
+	 * So cast to unsigned to protect lower limits of
+	 * simple_rel_array
+	 */
+	if ((uint32) relid < (uint32) root->simple_rel_array_size)
 	{
 		RelOptInfo *rel;
 		RangeTblEntry *rte;