Hi, Henrik.
1) Comparing MariaDB and what's there in MySQL 5.6.1: are these identical but independent implementations? If there are differences, what are they?
Implementations are quite different by now. Most significant difference is precise arithmetic used in Maria. So coinciding shapes or nodes are handled properly unlike the MySQL. A number of bugs was fixed as well.
2) Apparently PostGIS requires to do all kinds of gymnastics both when installing and when doing version upgrades. MySQL/MariaDB spatial functions are just there to be used, right?
Right.
3) Speaking of PostGIS, its manual reveals that their GiST R-tree index actually only works on the bounding rectangles of shapes. Is this the case also for MyISAM/Aria R-tree indexes, or would MariaDB actually filter the result set to only return shapes that are within the search shape for real. And btw, does the search shape have to be a box, or can it be any shape?
RTree indexes operate with the 'bounding rectangles' in Maria as in PostGIS. It's just the RTree algorithm works that way. So Maria uses RTree key to get the preliminary result which is later filtered with the exact shape operation. So any shape should produce the proper result. It's just some shapes can't be effectively used by RTree to speed the execution.
4) Lack of InnoDB R-tree indexes... What would it take to do that? Is the current implementation re-usable in any way (ie just store current R-tree indexes into InnoDB pages...) or would it have to be a separate implementation?
It is reusable, and technically can be made inside the InnoDB. Unfortunately we have no plans for doing that.
5) Euclidean geometrics only... PostGIS and SQLite use the separate GEOS library (and cousins like PROJ.4). Why isn't this used in the MySQL/MariaDB implementation? It seems to me, you could get accurate handling of different (non-euclidean) projections by using these libraries, "for free".
For a number of reasons we didn't use the GEOS library. Though the geodetic coordinates (along with other reference systems) should be available soon. Regards HF 06.08.2012 11:54, Henrik Ingo wrote:
Hi Holyfoot, others
I've been reading up on the state of GIS functionality. It would be great if I can get some answers directly from the source!
1) Comparing MariaDB and what's there in MySQL 5.6.1: are these identical but independent implementations? If there are differences, what are they?
2) Apparently PostGIS requires to do all kinds of gymnastics both when installing and when doing version upgrades. MySQL/MariaDB spatial functions are just there to be used, right?
3) Speaking of PostGIS, its manual reveals that their GiST R-tree index actually only works on the bounding rectangles of shapes. Is this the case also for MyISAM/Aria R-tree indexes, or would MariaDB actually filter the result set to only return shapes that are within the search shape for real. And btw, does the search shape have to be a box, or can it be any shape?
4) Lack of InnoDB R-tree indexes... What would it take to do that? Is the current implementation re-usable in any way (ie just store current R-tree indexes into InnoDB pages...) or would it have to be a separate implementation?
5) Euclidean geometrics only... PostGIS and SQLite use the separate GEOS library (and cousins like PROJ.4). Why isn't this used in the MySQL/MariaDB implementation? It seems to me, you could get accurate handling of different (non-euclidean) projections by using these libraries, "for free".
henrik