diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml
index ad36585400c529a83f810b69875ea542d174392c..5b364876093d1056eb9e88a76012fbebc0faee39 100644
--- a/doc/src/sgml/catalogs.sgml
+++ b/doc/src/sgml/catalogs.sgml
@@ -5648,7 +5648,7 @@
 
      <row>
       <entry><structfield>provider</structfield></entry>
-      <entry><type>name</type></entry>
+      <entry><type>text</type></entry>
       <entry></entry>
       <entry>The label provider associated with this label.</entry>
      </row>
@@ -5937,7 +5937,7 @@
      </row>
      <row>
       <entry><structfield>provider</structfield></entry>
-      <entry><type>name</type></entry>
+      <entry><type>text</type></entry>
       <entry></entry>
       <entry>The label provider associated with this label.</entry>
      </row>
@@ -9025,7 +9025,7 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
      </row>
      <row>
       <entry><structfield>provider</structfield></entry>
-      <entry><type>name</type></entry>
+      <entry><type>text</type></entry>
       <entry><literal><link linkend="catalog-pg-seclabel"><structname>pg_seclabel</structname></link>.provider</literal></entry>
       <entry>The label provider associated with this label.</entry>
      </row>
diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c
index 8412dcc587553ea08c8d6e6ff2d6c0da71b849b1..1ef98ce3532281ed232c48804fee010087e4cf91 100644
--- a/src/backend/commands/seclabel.c
+++ b/src/backend/commands/seclabel.c
@@ -163,8 +163,8 @@ GetSharedSecurityLabel(const ObjectAddress *object, const char *provider)
 				ObjectIdGetDatum(object->classId));
 	ScanKeyInit(&keys[2],
 				Anum_pg_shseclabel_provider,
-				BTEqualStrategyNumber, F_NAMEEQ,
-				CStringGetDatum(provider));
+				BTEqualStrategyNumber, F_TEXTEQ,
+				CStringGetTextDatum(provider));
 
 	pg_shseclabel = heap_open(SharedSecLabelRelationId, AccessShareLock);
 
@@ -220,8 +220,8 @@ GetSecurityLabel(const ObjectAddress *object, const char *provider)
 				Int32GetDatum(object->objectSubId));
 	ScanKeyInit(&keys[3],
 				Anum_pg_seclabel_provider,
-				BTEqualStrategyNumber, F_NAMEEQ,
-				CStringGetDatum(provider));
+				BTEqualStrategyNumber, F_TEXTEQ,
+				CStringGetTextDatum(provider));
 
 	pg_seclabel = heap_open(SecLabelRelationId, AccessShareLock);
 
@@ -256,7 +256,6 @@ SetSharedSecurityLabel(const ObjectAddress *object,
 	SysScanDesc scan;
 	HeapTuple	oldtup;
 	HeapTuple	newtup = NULL;
-	NameData	providername;
 	Datum		values[Natts_pg_shseclabel];
 	bool		nulls[Natts_pg_shseclabel];
 	bool		replaces[Natts_pg_shseclabel];
@@ -266,8 +265,7 @@ SetSharedSecurityLabel(const ObjectAddress *object,
 	memset(replaces, false, sizeof(replaces));
 	values[Anum_pg_shseclabel_objoid - 1] = ObjectIdGetDatum(object->objectId);
 	values[Anum_pg_shseclabel_classoid - 1] = ObjectIdGetDatum(object->classId);
-	namestrcpy(&providername, provider);
-	values[Anum_pg_shseclabel_provider - 1] = NameGetDatum(&providername);
+	values[Anum_pg_shseclabel_provider - 1] = CStringGetTextDatum(provider);
 	if (label != NULL)
 		values[Anum_pg_shseclabel_label - 1] = CStringGetTextDatum(label);
 
@@ -282,8 +280,8 @@ SetSharedSecurityLabel(const ObjectAddress *object,
 				ObjectIdGetDatum(object->classId));
 	ScanKeyInit(&keys[2],
 				Anum_pg_shseclabel_provider,
-				BTEqualStrategyNumber, F_NAMEEQ,
-				CStringGetDatum(provider));
+				BTEqualStrategyNumber, F_TEXTEQ,
+				CStringGetTextDatum(provider));
 
 	pg_shseclabel = heap_open(SharedSecLabelRelationId, RowExclusiveLock);
 
@@ -337,7 +335,6 @@ SetSecurityLabel(const ObjectAddress *object,
 	SysScanDesc scan;
 	HeapTuple	oldtup;
 	HeapTuple	newtup = NULL;
-	NameData	providername;
 	Datum		values[Natts_pg_seclabel];
 	bool		nulls[Natts_pg_seclabel];
 	bool		replaces[Natts_pg_seclabel];
@@ -355,8 +352,7 @@ SetSecurityLabel(const ObjectAddress *object,
 	values[Anum_pg_seclabel_objoid - 1] = ObjectIdGetDatum(object->objectId);
 	values[Anum_pg_seclabel_classoid - 1] = ObjectIdGetDatum(object->classId);
 	values[Anum_pg_seclabel_objsubid - 1] = Int32GetDatum(object->objectSubId);
-	namestrcpy(&providername, provider);
-	values[Anum_pg_seclabel_provider - 1] = NameGetDatum(&providername);
+	values[Anum_pg_seclabel_provider - 1] = CStringGetTextDatum(provider);
 	if (label != NULL)
 		values[Anum_pg_seclabel_label - 1] = CStringGetTextDatum(label);
 
@@ -375,8 +371,8 @@ SetSecurityLabel(const ObjectAddress *object,
 				Int32GetDatum(object->objectSubId));
 	ScanKeyInit(&keys[3],
 				Anum_pg_seclabel_provider,
-				BTEqualStrategyNumber, F_NAMEEQ,
-				CStringGetDatum(provider));
+				BTEqualStrategyNumber, F_TEXTEQ,
+				CStringGetTextDatum(provider));
 
 	pg_seclabel = heap_open(SecLabelRelationId, RowExclusiveLock);
 
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index 8af748b54ff11a842da65223b53bee166e2ce73f..9a10fadfb5866af85c07a576bd0fdba040fb5d5e 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -53,6 +53,6 @@
  */
 
 /*							yyyymmddN */
-#define CATALOG_VERSION_NO	201505181
+#define CATALOG_VERSION_NO	201505153
 
 #endif
diff --git a/src/include/catalog/indexing.h b/src/include/catalog/indexing.h
index 0f615662374ccd6dcccf70f94697fd1fc856fd72..f20567ed5f502fc7ce3f20c53ca280fb6b154f71 100644
--- a/src/include/catalog/indexing.h
+++ b/src/include/catalog/indexing.h
@@ -290,10 +290,10 @@ DECLARE_UNIQUE_INDEX(pg_default_acl_oid_index, 828, on pg_default_acl using btre
 DECLARE_UNIQUE_INDEX(pg_db_role_setting_databaseid_rol_index, 2965, on pg_db_role_setting using btree(setdatabase oid_ops, setrole oid_ops));
 #define DbRoleSettingDatidRolidIndexId	2965
 
-DECLARE_UNIQUE_INDEX(pg_seclabel_object_index, 3597, on pg_seclabel using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops, provider name_ops));
+DECLARE_UNIQUE_INDEX(pg_seclabel_object_index, 3597, on pg_seclabel using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops, provider text_ops));
 #define SecLabelObjectIndexId				3597
 
-DECLARE_UNIQUE_INDEX(pg_shseclabel_object_index, 3593, on pg_shseclabel using btree(objoid oid_ops, classoid oid_ops, provider name_ops));
+DECLARE_UNIQUE_INDEX(pg_shseclabel_object_index, 3593, on pg_shseclabel using btree(objoid oid_ops, classoid oid_ops, provider text_ops));
 #define SharedSecLabelObjectIndexId			3593
 
 DECLARE_UNIQUE_INDEX(pg_extension_oid_index, 3080, on pg_extension using btree(oid oid_ops));
diff --git a/src/include/catalog/pg_seclabel.h b/src/include/catalog/pg_seclabel.h
index f6498142f989b4fe3173dc3e221df9f7c93a75ec..c9f5b0cfdfc754032e51d378bb4417a6ee6197d7 100644
--- a/src/include/catalog/pg_seclabel.h
+++ b/src/include/catalog/pg_seclabel.h
@@ -25,9 +25,9 @@ CATALOG(pg_seclabel,3596) BKI_WITHOUT_OIDS
 	Oid			objoid;			/* OID of the object itself */
 	Oid			classoid;		/* OID of table containing the object */
 	int32		objsubid;		/* column number, or 0 if not used */
-	NameData	provider;		/* name of label provider */
 
 #ifdef CATALOG_VARLEN			/* variable-length fields start here */
+	text		provider BKI_FORCE_NOT_NULL; /* name of label provider */
 	text		label BKI_FORCE_NOT_NULL; /* security label of the object */
 #endif
 } FormData_pg_seclabel;
diff --git a/src/include/catalog/pg_shseclabel.h b/src/include/catalog/pg_shseclabel.h
index 77d438926ac752d5aa6a3d53cfaa703e7ede36f8..3977b42f874c6afc61ed6f03eaf3bf4da6e16057 100644
--- a/src/include/catalog/pg_shseclabel.h
+++ b/src/include/catalog/pg_shseclabel.h
@@ -24,9 +24,9 @@ CATALOG(pg_shseclabel,3592) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
 {
 	Oid			objoid;			/* OID of the shared object itself */
 	Oid			classoid;		/* OID of table containing the shared object */
-	NameData	provider;		/* name of label provider */
 
 #ifdef CATALOG_VARLEN			/* variable-length fields start here */
+	text		provider BKI_FORCE_NOT_NULL; /* name of label provider */
 	text		label BKI_FORCE_NOT_NULL; /* security label of the object */
 #endif
 } FormData_pg_shseclabel;