Re: Collation versioning
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: Thomas Munro <thomas.munro@gmail.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Laurenz Albe <laurenz.albe@cybertec.at>, Douglas Doole <dougdoole@gmail.com>, Christoph Berg <myon@debian.org>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2020-03-16T07:57:38Z
Lists: pgsql-hackers
On Thu, Mar 12, 2020 at 03:00:26PM +0100, Julien Rouhaud wrote:
> And v15 due to conflict with b08dee24a5 (Add pg_dump support for ALTER obj
> DEPENDS ON EXTENSION).
I have looked at patches 0001~0003 in the set for now. 0001 looks
clean to me.
In patch 0002, you have the following addition:
@@ -103,9 +103,10 @@ ORDER BY 1, 2;
pg_class | relacl | aclitem[]
pg_class | reloptions | text[]
pg_class | relpartbound | pg_node_tree
+ pg_depend | refobjversion | text
This comes from a regression test doing a sanity check to look for
catalogs which have a toastable column but no toast tables. As an
exception, it should be documented in the test's comment. Actually,
does it need to be an exception? This does not depend on
relation-level facilities so there should be no risk of recursive
dependencies, though I have not looked in details at this part.
+ <para>
+ The only current use of <structfield>refobjversion</structfield> is to
+ record dependencies between indexes and collation versions.
+ </para>
[...]
+ <row>
+ <entry><structfield>refobjversion</structfield></entry>
+ <entry><type>text</type></entry>
+ <entry></entry>
+ <entry>
+ An optional version for the referenced object; see text
+ </entry>
+ </row>
Couldn't you merge both paragraphs here?
Regarding patch 0003, it would be nice to include some tests
independent on the rest and making use of the new functions. These
normally go in regproc.sql. For example with a collation that needs
double quotes as this is not obvious:
=# select regcollation('"POSIX"');
regcollation
--------------
"POSIX"
(1 row)
On top of that, this needs tests with to_regcollation() and tests with
schema-qualified collations.
Documentation for to_regcollation() is missing. And it looks that
many parts of the documentation are missing an update. One example in
datatype.sgml:
Type <type>oid</type> represents an object identifier. There are also
several alias types for <type>oid</type>: <type>regproc</type>,
<type>regprocedure</type>, <type>regoper</type>, <type>regoperator</type>,
<type>regclass</type>, <type>regtype</type>, <type>regrole</type>,
<type>regnamespace</type>, <type>regconfig</type>, and
<type>regdictionary</type>. <xref linkend="datatype-oid-table"/> shows an
overview.
At quick glance, there are more sections in need of a refresh..
--
Michael
Commits
-
Doc: Document known problem with Windows collation versions.
- 1bf946bd43e5 14.0 landed
-
Add collation versions for FreeBSD.
- ca051d8b101d 14.0 landed
-
Tolerate version lookup failure for old style Windows locale names.
- 9f12a3b95dd5 14.0 landed
-
Track collation versions for indexes.
- 257836a75585 14.0 landed
-
Add pg_depend.refobjversion.
- cd6f479e79f3 14.0 landed
-
Remove pg_collation.collversion.
- 7d1297df0830 14.0 landed
-
Fix the MSVC build for versions 2015 and later.
- a169155453e3 13.0 cited
-
Add collation versions for Windows.
- 352f6f2df60f 13.0 cited
-
Implement type regcollation
- a2b1faa0f279 13.0 landed
-
Use libc version as a collation version on glibc systems.
- d5ac14f9ccdd 13.0 landed
- 9f90b1d08d79 13.0 landed
-
Make type "name" collation-aware.
- 586b98fdf1aa 12.0 cited