Revert "Change pg_seclabel.provider and pg_shseclabel.provider to type "name"."
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 19 May 2015 14:40:04 +0000 (10:40 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 19 May 2015 14:40:04 +0000 (10:40 -0400)
This reverts commit b82a7be603f1811a0a707b53c62de6d5d9431740.  There
is a better (less invasive) way to fix it, which I will commit next.

doc/src/sgml/catalogs.sgml
src/backend/commands/seclabel.c
src/include/catalog/catversion.h
src/include/catalog/indexing.h
src/include/catalog/pg_seclabel.h
src/include/catalog/pg_shseclabel.h

index ad36585400c529a83f810b69875ea542d174392c..5b364876093d1056eb9e88a76012fbebc0faee39 100644 (file)
 
      <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>
      </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>
index 8412dcc587553ea08c8d6e6ff2d6c0da71b849b1..1ef98ce3532281ed232c48804fee010087e4cf91 100644 (file)
@@ -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);
 
index 8af748b54ff11a842da65223b53bee166e2ce73f..9a10fadfb5866af85c07a576bd0fdba040fb5d5e 100644 (file)
@@ -53,6 +53,6 @@
  */
 
 /*                         yyyymmddN */
-#define CATALOG_VERSION_NO 201505181
+#define CATALOG_VERSION_NO 201505153
 
 #endif
index 0f615662374ccd6dcccf70f94697fd1fc856fd72..f20567ed5f502fc7ce3f20c53ca280fb6b154f71 100644 (file)
@@ -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));
index f6498142f989b4fe3173dc3e221df9f7c93a75ec..c9f5b0cfdfc754032e51d378bb4417a6ee6197d7 100644 (file)
@@ -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;
index 77d438926ac752d5aa6a3d53cfaa703e7ede36f8..3977b42f874c6afc61ed6f03eaf3bf4da6e16057 100644 (file)
@@ -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;