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
pull/7/head
Andres Freund 10 years ago
parent ad22783792
commit 920218cbc0
  1. 2
      contrib/test_decoding/expected/ddl.out
  2. 2
      src/backend/replication/slot.c

@ -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"

@ -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;
}
}

Loading…
Cancel
Save