Robert Haas wrote: > Now, let's suppose that the user sets up a sharded table and then > says: SELECT a, SUM(b), AVG(c) FROM sometab. At this point, what we'd > like to have happen is that for each child foreign table, we go and > fetch partially aggregated results. Those children might be running > any version of PostgreSQL - I was not assuming that we'd insist on > matching major versions, although of course that could be done - and > there would probably need to be a minimum version of PostgreSQL > anyway. They could even be running some other database. As long as > they can spit out partial aggregates in a format that we can > understand, we can deserialize those aggregates and run combine > functions on them. But if the remote side is, say, MariaDB, it's > probably much easier to get it to spit out something that looks like a > PostgreSQL array than it is to make it spit out some bytea blob that's > in an entirely PostgreSQL-specific format.
Basing parts of the Postgres sharding mechanism on FDWs sounds acceptable. Trying to design things so that *any* FDW can be part of a shard, so that you have some shards in Postgres and other shards in MariaDB, seems ludicrous to me. Down that path lies madness. In fact, trying to ensure cross-major-version compatibility already sounds like asking for too much. Requiring matching major versions sounds a perfectly acceptable restricting to me. -- Álvaro Herrera http://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