On Sat, Nov 7, 2015 at 5:42 PM, Greg Stark <st...@mit.edu> wrote: > On Fri, Nov 6, 2015 at 4:54 AM, Ashutosh Bapat > <ashutosh.ba...@enterprisedb.com> wrote: >> PFA patch to get data sorted from the foreign server (postgres_fdw) >> according to the pathkeys useful for merge join. > > An idle thought. There are going to be a lot of cases where different > software systems actually disagree about collation rules. I wonder if > it would be valuable to have a node that just checks that each row is > in fact greater than the previous row and throws an error if not. That > can be optional or a parameter of the FDW but it's probably cheap > enough to have enabled by default. It would save a lot of difficult to > heartache since the behaviour if the inputs aren't correctly sorted > will be strangely incorrect join results. Often the results may just > be missing or duplicated rows and that can be easy to miss and lead to > corrupted databases or security problems.
It's not a bad thought, but it could come up even locally - we've had more than one situation where indexes have gotten corrupted by updating glibc. The new glibc doesn't agree with the old one on what the collation ordering is, and so the indexes are wrong with respect to the new glibc version. If we were going to design something like this, rather than making it a separate node, I'd be inclined to create it as a C-callable function that could be invoked anywhere we want to check that the ordering is valid. I suspect you're wrong about the cost, though: I bet it wouldn't be too hard to find cases where it imposes a really noticeable penalty. Also, to be clear, I don't think this patch needs to solve that problem. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers