User defined data types in Logical Replication

Huong Dangminh <huo-dangminh@ys.jp.nec.com>

From: Huong Dangminh <huo-dangminh@ys.jp.nec.com>
To: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Cc: Hiroshi Yanagisawa <hir-yanagisawa@ut.jp.nec.com>
Date: 2017-11-10T00:41:26Z
Lists: pgsql-hackers

Attachments

Hi,

We are getting the bellow error while trying use Logical Replication 
with user defined data types in a C program (when call elog function).

 ERROR:  XX000: cache lookup failed for type XXXXX

# XXXXX is remote type's oid

It occurs in worker.c:slot_store_error_callback function when remotetypoid not exist in local pg_type.

I have tried to write a patch (attached).
I think it is not kindly to change typename to the OID's one,
But I could not find the easy way to get typename from OID in the remote host.

--- 
Thanks and best regards, 
Dang Minh Huong 
NEC Solution Innovators, Ltd. 
http://www.nec-solutioninnovators.co.jp/en/

Commits

  1. logical replication: fix OID type mapping mechanism