diff --git a/src/backend/lib/bipartite_match.c b/src/backend/lib/bipartite_match.c
index 57d6d548cff58599f39172facea8364b3cd0293f..9c08b2895d10d4182cfe0cee6aec308f47798931 100644
--- a/src/backend/lib/bipartite_match.c
+++ b/src/backend/lib/bipartite_match.c
@@ -21,7 +21,8 @@
 
 #include "lib/bipartite_match.h"
 #include "miscadmin.h"
-#include "utils/palloc.h"
+#include "utils/builtins.h"
+
 
 static bool hk_breadth_search(BipartiteMatchState *state);
 static bool hk_depth_search(BipartiteMatchState *state, int u, int depth);
@@ -87,7 +88,7 @@ hk_breadth_search(BipartiteMatchState *state)
 	int			qtail = 0;		/* so don't have to worry about wrapping */
 	int			u;
 
-	distance[0] = INFINITY;
+	distance[0] = get_float4_infinity();
 
 	for (u = 1; u <= usize; ++u)
 	{
@@ -97,7 +98,7 @@ hk_breadth_search(BipartiteMatchState *state)
 			queue[qhead++] = u;
 		}
 		else
-			distance[u] = INFINITY;
+			distance[u] = get_float4_infinity();
 	}
 
 	while (qtail < qhead)
@@ -156,6 +157,6 @@ hk_depth_search(BipartiteMatchState *state, int u, int depth)
 		}
 	}
 
-	distance[u] = INFINITY;
+	distance[u] = get_float4_infinity();
 	return false;
 }