Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL.
Comes up very frequently in various prospect engagements. PostGIS currently works with Citus but just created this issue for re-evaluating/reviewing the specifics of what works and what doesn't, based on which coverage could be improved.
(The above is just a high-level summary of the issue, in future, this could be made elaborate with specific requirements).
The main unsupported features is the lack of custom aggregates in Citus (#120). Implementing this would allow us to provide distributed versions of the PostGIS aggregates, which are quite commonly used.
In general, the main shortcoming is that PostGIS applications generally require more advanced SQL support than what Citus offers. Since there is no natural sharding dimension (only 1 contiguous earth), router executor generally cannot be used.
It looks the issue still exists even in Citus
For example, the following query does not work since the table
SELECT vehicle_id, ST_Collect(location) AS circle FROM parking WHERE parking_time > '2019-11-11' GROUP BY vehicle_id
The generated error is:
In the other hand, the query works fine as follows:
WITH L AS ( SELECT vehicle_id, location FROM parking WHERE parking_time > '2019-11-11' ) SELECT vehicle_id, ST_Collect(location) AS circle FROM L GROUP BY vehicle_id