diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c
index 7df8761..ef706bc 100644
--- a/src/backend/optimizer/util/pathnode.c
+++ b/src/backend/optimizer/util/pathnode.c
@@ -1282,9 +1282,9 @@ append_total_cost_compare(const void *a, const void *b)
 	Path	   *path1 = (Path *) lfirst(*(ListCell **) a);
 	Path	   *path2 = (Path *) lfirst(*(ListCell **) b);
 
-	if (path1->total_cost > path2->total_cost)
+	if (path1->total_cost > path2->total_cost * STD_FUZZ_FACTOR)
 		return -1;
-	if (path1->total_cost < path2->total_cost)
+	if (path1->total_cost < path2->total_cost * STD_FUZZ_FACTOR)
 		return 1;
 
 	return 0;
@@ -1300,9 +1300,9 @@ append_startup_cost_compare(const void *a, const void *b)
 	Path	   *path1 = (Path *) lfirst(*(ListCell **) a);
 	Path	   *path2 = (Path *) lfirst(*(ListCell **) b);
 
-	if (path1->startup_cost > path2->startup_cost)
+	if (path1->startup_cost > path2->startup_cost * STD_FUZZ_FACTOR)
 		return -1;
-	if (path1->startup_cost < path2->startup_cost)
+	if (path1->startup_cost < path2->startup_cost * STD_FUZZ_FACTOR)
 		return 1;
 
 	return 0;
diff --git a/src/test/regress/expected/select_parallel.out b/src/test/regress/expected/select_parallel.out
index 7824ca5..14f91ee 100644
--- a/src/test/regress/expected/select_parallel.out
+++ b/src/test/regress/expected/select_parallel.out
@@ -75,11 +75,11 @@ explain (costs off)
          Workers Planned: 3
          ->  Partial Aggregate
                ->  Parallel Append
-                     ->  Seq Scan on d_star
                      ->  Seq Scan on f_star
+                     ->  Seq Scan on d_star
                      ->  Seq Scan on e_star
-                     ->  Seq Scan on b_star
                      ->  Seq Scan on c_star
+                     ->  Seq Scan on b_star
                      ->  Seq Scan on a_star
 (11 rows)
 
