diff --git a/src/backend/access/gin/ginvalidate.c b/src/backend/access/gin/ginvalidate.c
index b87833b..d39c5bf 100644
--- a/src/backend/access/gin/ginvalidate.c
+++ b/src/backend/access/gin/ginvalidate.c
@@ -234,7 +234,8 @@ ginvalidate(Oid opclassoid)
 	/* Check that the originally-named opclass is complete */
 	for (i = 1; i <= GINNProcs; i++)
 	{
-		if (opclassgroup && (opclassgroup->functionset & (1 << i)) != 0)
+		if (opclassgroup &&
+			(opclassgroup->functionset & ((uint64) 1 << i)) != 0)
 			continue;			/* got it */
 		if (i == GIN_COMPARE_PARTIAL_PROC)
 			continue;			/* optional method */
diff --git a/src/backend/access/gist/gistvalidate.c b/src/backend/access/gist/gistvalidate.c
index 190b978..6c2ab12 100644
--- a/src/backend/access/gist/gistvalidate.c
+++ b/src/backend/access/gist/gistvalidate.c
@@ -254,7 +254,8 @@ gistvalidate(Oid opclassoid)
 	/* Check that the originally-named opclass is complete */
 	for (i = 1; i <= GISTNProcs; i++)
 	{
-		if (opclassgroup && (opclassgroup->functionset & (1 << i)) != 0)
+		if (opclassgroup &&
+			(opclassgroup->functionset & ((uint64) 1 << i)) != 0)
 			continue;			/* got it */
 		if (i == GIST_DISTANCE_PROC || i == GIST_FETCH_PROC)
 			continue;			/* optional methods */
diff --git a/src/backend/access/spgist/spgvalidate.c b/src/backend/access/spgist/spgvalidate.c
index ba7c828..d911eaa 100644
--- a/src/backend/access/spgist/spgvalidate.c
+++ b/src/backend/access/spgist/spgvalidate.c
@@ -213,7 +213,7 @@ spgvalidate(Oid opclassoid)
 
 		for (i = 1; i <= SPGISTNProc; i++)
 		{
-			if ((thisgroup->functionset & (1 << i)) != 0)
+			if ((thisgroup->functionset & ((uint64) 1 << i)) != 0)
 				continue;		/* got it */
 			ereport(INFO,
 					(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
