diff options
-rw-r--r-- | doc/src/sgml/catalogs.sgml | 6 | ||||
-rw-r--r-- | src/backend/catalog/heap.c | 11 |
2 files changed, 12 insertions, 5 deletions
diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index 5723be744d7..61ce12c5600 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -3783,7 +3783,8 @@ SCRAM-SHA-256$<replaceable><iteration count></>:<replaceable><salt>< <entry><literal><link linkend="catalog-pg-collation"><structname>pg_collation</structname></link>.oid</literal></entry> <entry> For each column in the index key, this contains the OID of the - collation to use for the index. + the collation to use for the index, or zero if the column is not + of a collatable data type. </entry> </row> @@ -4770,7 +4771,8 @@ SCRAM-SHA-256$<replaceable><iteration count></>:<replaceable><salt>< <entry><literal><link linkend="catalog-pg-opclass"><structname>pg_opclass</structname></link>.oid</literal></entry> <entry> For each column in the partition key, this contains the OID of the - the collation to use for partitioning. + the collation to use for partitioning, or zero if the column is not + of a collatable data type. </entry> </row> diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 0ce94f346f5..4e5b79ef941 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -3160,9 +3160,14 @@ StorePartitionKey(Relation rel, recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); - referenced.classId = CollationRelationId; - referenced.objectId = partcollation[i]; - referenced.objectSubId = 0; + /* The default collation is pinned, so don't bother recording it */ + if (OidIsValid(partcollation[i]) && + partcollation[i] != DEFAULT_COLLATION_OID) + { + referenced.classId = CollationRelationId; + referenced.objectId = partcollation[i]; + referenced.objectSubId = 0; + } recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); } |