From 920218cbc0a36f18793c20184b7ebb999d28e8c8 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Sat, 3 Oct 2015 15:29:08 +0200 Subject: [PATCH] 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 --- contrib/test_decoding/expected/ddl.out | 2 +- src/backend/replication/slot.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/test_decoding/expected/ddl.out b/contrib/test_decoding/expected/ddl.out index 11b2d9c07f..57a1289ea7 100644 --- a/contrib/test_decoding/expected/ddl.out +++ b/contrib/test_decoding/expected/ddl.out @@ -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" diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c index c66619cda2..a4b86e039e 100644 --- a/src/backend/replication/slot.c +++ b/src/backend/replication/slot.c @@ -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; } }