pgsql-bugs(at)postgresql(dot)org writes:
> I have included all code needed to prove the bug,
No, you haven't: where are the table declarations?
But I'll take a guess anyway: you declared "distance" as int2, didn't
you? AVG(int2) currently uses an int2 accumulator, and you're suffering
overflow. Try "AVG(distance::float8)" instead.
We've changed AVG() to use a numeric accumulator for 7.1, but that
won't help you today.
regards, tom lane