diff --git a/src/backend/parser/parse_collate.c b/src/backend/parser/parse_collate.c
index 6d34245083e..3935164d166 100644
--- a/src/backend/parser/parse_collate.c
+++ b/src/backend/parser/parse_collate.c
@@ -520,7 +520,14 @@ assign_collations_walker(Node *node, assign_collations_context *context)
 
 				collation = exprCollation((Node *) tent->expr);
 				/* collation doesn't change if it's converted to array */
-				strength = COLLATE_IMPLICIT;
+				if(IsA(tent->expr, CollateExpr))
+				{
+					strength = COLLATE_EXPLICIT;
+				}
+				else
+				{
+					strength = COLLATE_IMPLICIT;
+				}
 				location = exprLocation((Node *) tent->expr);
 			}
 			break;
