Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit c097b27

Browse files
committed
Fix more user-visible elog() calls.
Michael Paquier discovered that this could be triggered via SQL; give a nicer message instead. Patch by Michael Paquier, reviewed by Masahiko Sawada. Discussion: http://postgr.es/m/CAB7nPqQtPg+LKKtzdKN26judHcvPZ0s1gNigzOT4j8CYuuuBYg@mail.gmail.com
1 parent 036166f commit c097b27

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

contrib/test_decoding/expected/replorigin.out

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,14 @@ SELECT pg_replication_origin_drop('test_decoding: temp');
2626
(1 row)
2727

2828
SELECT pg_replication_origin_drop('test_decoding: temp');
29-
ERROR: cache lookup failed for replication origin 'test_decoding: temp'
29+
ERROR: replication origin "test_decoding: temp" does not exist
30+
-- various failure checks for undefined slots
31+
select pg_replication_origin_advance('test_decoding: temp', '0/1');
32+
ERROR: replication origin "test_decoding: temp" does not exist
33+
select pg_replication_origin_session_setup('test_decoding: temp');
34+
ERROR: replication origin "test_decoding: temp" does not exist
35+
select pg_replication_origin_progress('test_decoding: temp', true);
36+
ERROR: replication origin "test_decoding: temp" does not exist
3037
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
3138
?column?
3239
----------

contrib/test_decoding/sql/replorigin.sql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ SELECT pg_replication_origin_create('test_decoding: temp');
1313
SELECT pg_replication_origin_drop('test_decoding: temp');
1414
SELECT pg_replication_origin_drop('test_decoding: temp');
1515

16+
-- various failure checks for undefined slots
17+
select pg_replication_origin_advance('test_decoding: temp', '0/1');
18+
select pg_replication_origin_session_setup('test_decoding: temp');
19+
select pg_replication_origin_progress('test_decoding: temp', true);
20+
1621
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
1722

1823
-- origin tx

src/backend/replication/logical/origin.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,10 @@ replorigin_by_name(char *roname, bool missing_ok)
225225
ReleaseSysCache(tuple);
226226
}
227227
else if (!missing_ok)
228-
elog(ERROR, "cache lookup failed for replication origin '%s'",
229-
roname);
228+
ereport(ERROR,
229+
(errcode(ERRCODE_UNDEFINED_OBJECT),
230+
errmsg("replication origin \"%s\" does not exist",
231+
roname)));
230232

231233
return roident;
232234
}
@@ -437,8 +439,10 @@ replorigin_by_oid(RepOriginId roident, bool missing_ok, char **roname)
437439
*roname = NULL;
438440

439441
if (!missing_ok)
440-
elog(ERROR, "cache lookup failed for replication origin with oid %u",
441-
roident);
442+
ereport(ERROR,
443+
(errcode(ERRCODE_UNDEFINED_OBJECT),
444+
errmsg("replication origin with OID %u does not exist",
445+
roident)));
442446

443447
return false;
444448
}

0 commit comments

Comments
 (0)