On 2019/01/07 16:35, Michael Paquier wrote: > On Mon, Jan 07, 2019 at 01:49:49PM +0900, Amit Langote wrote: >> { >> /* >> - * We currently only support writing to regular tables. >> + * We currently only support writing to regular tables. However, give >> + * a more specific error for partitioned and foreign tables. >> */ >> + if (relkind == RELKIND_PARTITIONED_TABLE) >> + ereport(ERROR, >> + (errcode(ERRCODE_WRONG_OBJECT_TYPE), >> + errmsg("\"%s.%s\" is a partitioned table", >> + nspname, relname), >> + errdetail("Partitioned tables are not >> supported as logical replication targets."))); > > Could it be possible to avoid a full sentence in the primary error > message? Usually these are avoided: > https://www.postgresql.org/docs/devel/error-style-guide.html > > It seems to me that we may want something more like: > Primary: "could not use \"%s.%s\" as logical replication target". > Detail: "Relation %s.%s is a foreign table", "not a table", etc.
I've thought about that before and I tend to agree with you. Maybe: ERROR: cannot use "%s.%s" as logical replication target DETAIL: Using partitioned tables as logical replication target is not supported. Sounds a bit repetitive, but perhaps it's better to use the words "not supported" in the DETAIL message. Thanks, Amit