]> granicus.if.org Git - postgresql/commit
Change pg_seclabel.provider and pg_shseclabel.provider to type "name".
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 19 May 2015 00:07:44 +0000 (20:07 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 19 May 2015 00:07:53 +0000 (20:07 -0400)
commitb82a7be603f1811a0a707b53c62de6d5d9431740
treee20388e40b43e159d26b24d3e989abbe34e7f0f3
parente4942f7a56efcfaabed5db7bde29ee21bef2f6e2
Change pg_seclabel.provider and pg_shseclabel.provider to type "name".

These were "text", but that's a bad idea because it has collation-dependent
ordering.  No index in template0 should have collation-dependent ordering,
especially not indexes on shared catalogs.  There was general agreement
that provider names don't need to be longer than other identifiers, so we
can fix this at a small waste of table space by changing from text to name.

There's no way to fix the problem in the back branches, but we can hope
that security labels don't yet have widespread-enough usage to make it
urgent to fix.

There needs to be a regression sanity test to prevent us from making this
same mistake again; but before putting that in, we'll need to get rid of
similar brain fade in the recently-added pg_replication_origin catalog.

Note: for lack of a suitable testing environment, I've not really exercised
this change.  I trust the buildfarm will show up any mistakes.
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