Improve errhint() about replication slot naming restrictions.

The existing hint talked about "may only contain letters", but the
actual requirement is more strict: only lower case letters are allowed.

Reported-By: Rushabh Lathia
Author: Rushabh Lathia
Discussion: AGPqQf2x50qcwbYOBKzb4x75sO_V3g81ZsA8+Ji9iN5t_khFhQ@mail.gmail.com
Backpatch: 9.4-, where replication slots were added
This commit is contained in:
Andres Freund 2015-10-03 15:29:08 +02:00
parent ad22783792
commit 920218cbc0
2 changed files with 2 additions and 2 deletions

View File

@ -12,7 +12,7 @@ ERROR: replication slot "regression_slot" already exists
-- fail because of an invalid name
SELECT 'init' FROM pg_create_logical_replication_slot('Invalid Name', 'test_decoding');
ERROR: replication slot name "Invalid Name" contains invalid character
HINT: Replication slot names may only contain letters, numbers, and the underscore character.
HINT: Replication slot names may only contain lower case letters, numbers, and the underscore character.
-- fail twice because of an invalid parameter values
SELECT 'init' FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', 'frakbar');
ERROR: could not parse value "frakbar" for parameter "include-xids"

View File

@ -196,7 +196,7 @@ ReplicationSlotValidateName(const char *name, int elevel)
(errcode(ERRCODE_INVALID_NAME),
errmsg("replication slot name \"%s\" contains invalid character",
name),
errhint("Replication slot names may only contain letters, numbers, and the underscore character.")));
errhint("Replication slot names may only contain lower case letters, numbers, and the underscore character.")));
return false;
}
}