Re: Getting sorted data from foreign server for merge join - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Getting sorted data from foreign server for merge join
Date
Msg-id CA+TgmoaWBGVLgqSNZ1NAhD9tVpeu_vJ0ZEYnBRc3p0PNgG2DJg@mail.gmail.com
Whole thread Raw
In response to Re: Getting sorted data from foreign server for merge join  (Greg Stark <stark@mit.edu>)
List pgsql-hackers
On Sat, Nov 7, 2015 at 5:42 PM, Greg Stark <stark@mit.edu> wrote:
> On Fri, Nov 6, 2015 at 4:54 AM, Ashutosh Bapat
> <ashutosh.bapat@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



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Getting sorted data from foreign server for merge join
Next
From: Robert Haas
Date:
Subject: Re: Getting sorted data from foreign server for merge join