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


Reply via email to