Re: Proposal: Generic WAL logical messages
От | Andres Freund |
---|---|
Тема | Re: Proposal: Generic WAL logical messages |
Дата | |
Msg-id | 20160406142513.wotqy3ba3kanr423@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: Proposal: Generic WAL logical messages (Andres Freund <andres@anarazel.de>) |
Список | pgsql-hackers |
On 2016-04-06 16:20:29 +0200, Andres Freund wrote: > On 2016-04-06 10:15:59 -0400, Tom Lane wrote: > > > In some ways it seems like the argument to pg_logical_emit_message(...) should > > > be 'bytea'. That'd be much more convenient for application use. But then > > > it's a pain when using it via the text-format SQL interface calls, where > > > we've got no sensible way to output it. > > There's a bytea version. > > > Well, that's something worth thinking about. I assume that > > pg_logical_slot_get_changes could be executed in a database different from > > the one where a change was originated? > > You can execute it, but you'll get an error: > if (slot->data.database != MyDatabaseId) > ereport(ERROR, > (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), > (errmsg("replication slot \"%s\" was not created in this database", > NameStr(slot->data.name))))); Or so I thought. A look at the code shows a lack of database filtering in DecodeLogicalMsgOp(). I think it also misses a FilterByOrigin() check. Greetings, Andres Freund
В списке pgsql-hackers по дате отправления: