Improve logical decoding error message (was wal_level > WAL_LEVEL_LOGICAL)
On Mon, May 22, 2017 at 11:08 PM, Neha Khatri <nehakhatri5@gmail.com> wrote:
As per my understabding, current postgres server supports only three
values for wal_level i.e. 'minimal' , 'replica' or 'logical'. But
following error message brought to notice that there are various code
spots that try to look for wal_level >= WAL_LEVEL_LOGICAL:select * from pg_create_logical_replication_slot('regression_slot',
'test_decoding');
ERROR: logical decoding requires wal_level >= logical
The Logical Decoding example in the documentation says:
"Before you can use logical decoding, you must set wal_level
<https://www.postgresql.org/docs/10/static/runtime-config-wal.html#guc-wal-level>
to logical and max_replication_slots
<https://www.postgresql.org/docs/10/static/runtime-config-replication.html#guc-max-replication-slots>
to
at least 1."
But above error message is not exactly consistent with this documentation.
Would it make sense to keep the error message and the documentation
consistent like the attached.
Regards,
Neha
Attachments:
improve_err_message.patchapplication/octet-stream; name=improve_err_message.patchDownload
diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c
index 33cb01b..1c99e84 100644
--- a/src/backend/replication/logical/logical.c
+++ b/src/backend/replication/logical/logical.c
@@ -80,7 +80,7 @@ CheckLogicalDecodingRequirements(void)
if (wal_level < WAL_LEVEL_LOGICAL)
ereport(ERROR,
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
- errmsg("logical decoding requires wal_level >= logical")));
+ errmsg("logical decoding requires wal_level = logical")));
if (MyDatabaseId == InvalidOid)
ereport(ERROR,
On Tue, May 23, 2017 at 8:08 AM, Neha Khatri <nehakhatri5@gmail.com> wrote:
The Logical Decoding example in the documentation says:
"Before you can use logical decoding, you must set wal_level to logical
and max_replication_slots to at least 1."But above error message is not exactly consistent with this documentation.
Would it make sense to keep the error message and the documentation
consistent like the attached.
There is no wal_level higher than logical, so the current sense looks
perfectly fine to me.
--
Michael
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Tue, May 23, 2017 at 10:26 AM, Michael Paquier <michael.paquier@gmail.com
wrote:
On Tue, May 23, 2017 at 8:08 AM, Neha Khatri <nehakhatri5@gmail.com>
wrote:The Logical Decoding example in the documentation says:
"Before you can use logical decoding, you must set wal_level to logical
and max_replication_slots to at least 1."But above error message is not exactly consistent with this
documentation.
Would it make sense to keep the error message and the documentation
consistent like the attached.There is no wal_level higher than logical, so the current sense looks
perfectly fine to me.
If there is no wal_level higher than logical, should the following error
message indicate to set it >= logical.
select * from
pg_create_logical_replication_slot('regression_slot','test_decoding');
ERROR: logical decoding requires wal_level >= logical
Regards,
Neha
Neha Khatri wrote:
On Tue, May 23, 2017 at 10:26 AM, Michael Paquier <michael.paquier@gmail.com
There is no wal_level higher than logical, so the current sense looks
perfectly fine to me.If there is no wal_level higher than logical, should the following error
message indicate to set it >= logical.select * from
pg_create_logical_replication_slot('regression_slot','test_decoding');
ERROR: logical decoding requires wal_level >= logical
I think it's purposefully ambiguous to cover a possible future
extension.
--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Tue, 23 May 2017 at 10:55 am, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:
Neha Khatri wrote:
On Tue, May 23, 2017 at 10:26 AM, Michael Paquier <
michael.paquier@gmail.com
There is no wal_level higher than logical, so the current sense looks
perfectly fine to me.If there is no wal_level higher than logical, should the following error
message indicate to set it >= logical.select * from
pg_create_logical_replication_slot('regression_slot','test_decoding');
ERROR: logical decoding requires wal_level >= logicalI think it's purposefully ambiguous to cover a possible future
extension.
Should documentation also have similar statement and indicate future
possibility.
What is the benefit of having it just in error message.
Regards,
Neha
--
Cheers,
Neha
On 2017-05-23 10:49:54 +0000, Neha Khatri wrote:
On Tue, 23 May 2017 at 10:55 am, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:Neha Khatri wrote:
On Tue, May 23, 2017 at 10:26 AM, Michael Paquier <
michael.paquier@gmail.com
There is no wal_level higher than logical, so the current sense looks
perfectly fine to me.If there is no wal_level higher than logical, should the following error
message indicate to set it >= logical.select * from
pg_create_logical_replication_slot('regression_slot','test_decoding');
ERROR: logical decoding requires wal_level >= logicalI think it's purposefully ambiguous to cover a possible future
extension.
Right, IIRC that's how this notion started.
Should documentation also have similar statement and indicate future
possibility.What is the benefit of having it just in error message.
I personally wouldn't do anything here, it doesn't seem an issue.
- Andres
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers