Description:
The distance() and buffer() functions do not appear to be 3D, in which case I imagine that the other GIS functions introduced in 5.1.35 are not 3D either.
How to repeat:
Here's a link to compare a proper 3D circle (not created with a MySQL GIS function) with a buffer created by using the MySQL 5.1.35 buffer() function:
http://www.around-the-world.co.uk/public/circle.php
It's just a demo so it doesn't have any validation, so please just use valid decimal latitude (+90 to -90) and longitude (-180 to + 180). Also don't define a circle which will cross the antimeridian (-180 or +180).
On the equator, the buffer is the same as the circle. As you move towards a pole, the circle remains a circle but the buffer gets distorted because the buffer() function doesn't seem to take into accounts that the lines of longitude get closer at the poles.
As I have said before in the MySQL GIS forum, I apologize if I am wrong, but nobody has commented that I am missing some important point.
Suggested fix:
Ask Alexey "Holyfoot" Botchkov if he could possibly apply corrections to these functions - that would be hugely appreciated.
I based my circle logic and a distance calculation on the excellent:
http://www.movable-type.co.uk/scripts/latlong.html
but I'm no mathematician, so that's about as far as I can go.