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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers