Difference between revisions of "Paris Code Sprint 2016 : PostGIS Agenda"
Jump to navigation
Jump to search
Wiki-Remic (talk | contribs) |
Wiki-Remic (talk | contribs) |
||
(28 intermediate revisions by 10 users not shown) | |||
Line 6: | Line 6: | ||
** What naming convention | ** What naming convention | ||
** What to do with the existing aggregate functions | ** What to do with the existing aggregate functions | ||
− | * Expanded object headers, introduction and testing | + | * [http://www.postgresql.org/message-id/20178.1423598435@sss.pgh.pa.us Expanded object headers], introduction and testing |
** How they work | ** How they work | ||
** Potential advantages, disadvantages | ** Potential advantages, disadvantages | ||
Line 15: | Line 15: | ||
** How to add (version flags?) | ** How to add (version flags?) | ||
** Multiple co-existing formats? | ** Multiple co-existing formats? | ||
− | * Breaking raster out as postgis_raster extension | + | * Breaking raster out as postgis_raster extension (hold off on talking about this until Regina comes) |
** Implications / difficulties | ** Implications / difficulties | ||
* GEOS improvements that would help PostGIS | * GEOS improvements that would help PostGIS | ||
+ | * Way to know/be sure a geometry is valid, without need to launch an IsValid test (SFCGAL initial purpose) | ||
+ | * Using FDW with PostGIS (hold off on talking about this until Regina comes) | ||
+ | ** Functions pushdown | ||
+ | ** Current limitations | ||
* PostgreSQL improvements that would help PostGIS | * PostgreSQL improvements that would help PostGIS | ||
− | ** Parallel query, review experiments, plan and execute more | + | ** Parallel query, review experiments, plan and execute more (hold off on talking about this until Regina comes) |
** Feed back parallel query results to pgsql-hackers | ** Feed back parallel query results to pgsql-hackers | ||
+ | * [https://github.com/postgis/postgis/pulls Open pull requests from GitHub] | ||
+ | ** Merge, modify, or reject | ||
+ | * Tickets with design implications | ||
+ | ** https://trac.osgeo.org/postgis/ticket/2529 | ||
+ | ** https://trac.osgeo.org/postgis/ticket/3405 | ||
+ | ** https://trac.osgeo.org/postgis/ticket/3246 | ||
+ | ** https://trac.osgeo.org/postgis/ticket/3326 | ||
+ | * Do we want to bundle example datasets w/PostGIS for docs, tutorials? | ||
+ | * Adding more checks to automated builds? | ||
+ | ** valgrind (would need to add suppressions for GEOS leaks) | ||
+ | ** gcov (identify untested or unused code paths) | ||
+ | |||
== Tasks == | == Tasks == | ||
Line 27: | Line 43: | ||
* Benchmarking of parallel query and parallel aggregate work from pgsql-hackers | * Benchmarking of parallel query and parallel aggregate work from pgsql-hackers | ||
+ | * BRIN indexes implementation for PostGIS geometries | ||
+ | * postgis/lwgeom_in_* move to liblwgeom dir (or any code that doesn't depend on Postgres?) | ||
− | == Possible PostGIS function improvement and addition== | + | == Possible PostGIS function improvement and addition == |
* improvement | * improvement | ||
− | ** st_pointN -> make a negative input count backward | + | ** <s>st_pointN -> make a negative input count backward [rémi]</s> |
− | ** st_setPoint -> make a negative input count backward | + | ** <s>st_setPoint -> make a negative input count backward [rémi]</s> |
− | ** st_asText -> optionnal arg to limit digit number | + | ** <s>st_asText -> optionnal arg to limit digit number [marc]</s> |
− | ** st_centroid -> work on circular string (simply dump points, then classical centroid) | + | ** <s>st_centroid -> work on circular string (simply dump points, then classical centroid) [remi] </s> |
** st_exteriorRing -> make it work on multipolygon, returns a collection | ** st_exteriorRing -> make it work on multipolygon, returns a collection | ||
− | ** st_makeline -> make it work on multipoints | + | ** <s>st_makeline -> make it work on multipoints [pauln]</s> |
− | ** st_scale -> optionnal argument to define the center of scaling (allows to scale "in place") | + | ** st_scale -> optionnal argument to define the center of scaling (allows to scale "in place") [marc] |
** st_split -> allow splitting (multi)line by (multi)point | ** st_split -> allow splitting (multi)line by (multi)point | ||
+ | ** st_asgml -> allow GML 3.2.1 support (not only namespace handle) http://portal.opengeospatial.org/files/?artifact_id=26765 | ||
+ | ** st_asgml (and st_geomfromgml) -> handle gml:Envelope | ||
+ | ** ST_AsX3D -> Bug fix - how to determine if 3D geometry is convex without resorting to CGAL. http://trac.osgeo.org/postgis/ticket/3435 [regina] | ||
+ | ** ST_GeogFromText -> make the longitude swap 180 deg when entering a latitude over 90 (postgis already counts the latitude backwards from 90 when crossing) [manu] | ||
* slight addition | * slight addition | ||
− | ** st_angle(P1,P2,P3) | + | ** <s>st_angle(P1,P2,P3) [remi]</s> |
** st_MakeRing((multi) linestrings and/or points | ** st_MakeRing((multi) linestrings and/or points | ||
** st_DumpLines -> dump everything to line (rings in poly, lines in multilines, etc. ) | ** st_DumpLines -> dump everything to line (rings in poly, lines in multilines, etc. ) | ||
Line 46: | Line 68: | ||
* big addition | * big addition | ||
** generate grid (regular and hex) | ** generate grid (regular and hex) | ||
− | ** st_snapToLine -> st_snap = snap vertex to vertex. This one = snap vertex to vertex or edge. | + | ** st_snapToLine -> st_snap = snap vertex to vertex. This one = snap vertex to vertex or edge. (note: st_snap also snap line to vertex) |
** st_splitLineByPoint(line,point,tolerance) -> using curv absc, the only current way to not be sensible to precision issue (st_split doesnt work) | ** st_splitLineByPoint(line,point,tolerance) -> using curv absc, the only current way to not be sensible to precision issue (st_split doesnt work) | ||
** st_VariableBuffer(geomM) -> buffer on geometry, the radius is given by M of each vertex, linear transition between. A lots of uses | ** st_VariableBuffer(geomM) -> buffer on geometry, the radius is given by M of each vertex, linear transition between. A lots of uses | ||
Line 52: | Line 74: | ||
** St_MakeArc(P1,P2,centre) and St_MakeArc(P1,P2,radius) -> create arcs (_not_ using 3 points on arc!) | ** St_MakeArc(P1,P2,centre) and St_MakeArc(P1,P2,radius) -> create arcs (_not_ using 3 points on arc!) | ||
** St_OrientedBBox(geom) -> returns the oriented bbox of the geom (returns a geom and an angle) | ** St_OrientedBBox(geom) -> returns the oriented bbox of the geom (returns a geom and an angle) | ||
+ | ** ST_KMeans -> window function - pramsey to integrate into 2.3 code base - https://github.com/pramsey/postgis/tree/kmeans |
Latest revision as of 07:47, 25 February 2016
Discussion and group review topics for the Paris Code Sprint 2016.
Discussion
- Clustering functions: Aggregate or Window?
- What naming convention
- What to do with the existing aggregate functions
- Expanded object headers, introduction and testing
- How they work
- Potential advantages, disadvantages
- Discussion on clean implementation possibilities
- Testing and benchmarks, is it worth it?
- Alternate storage formats, beyond GSERIALIZED
- Reasoning
- How to add (version flags?)
- Multiple co-existing formats?
- Breaking raster out as postgis_raster extension (hold off on talking about this until Regina comes)
- Implications / difficulties
- GEOS improvements that would help PostGIS
- Way to know/be sure a geometry is valid, without need to launch an IsValid test (SFCGAL initial purpose)
- Using FDW with PostGIS (hold off on talking about this until Regina comes)
- Functions pushdown
- Current limitations
- PostgreSQL improvements that would help PostGIS
- Parallel query, review experiments, plan and execute more (hold off on talking about this until Regina comes)
- Feed back parallel query results to pgsql-hackers
- Open pull requests from GitHub
- Merge, modify, or reject
- Tickets with design implications
- Do we want to bundle example datasets w/PostGIS for docs, tutorials?
- Adding more checks to automated builds?
- valgrind (would need to add suppressions for GEOS leaks)
- gcov (identify untested or unused code paths)
Tasks
- Benchmarking of expanded object headers test branch
- Benchmarking of parallel query and parallel aggregate work from pgsql-hackers
- BRIN indexes implementation for PostGIS geometries
- postgis/lwgeom_in_* move to liblwgeom dir (or any code that doesn't depend on Postgres?)
Possible PostGIS function improvement and addition
- improvement
st_pointN -> make a negative input count backward [rémi]st_setPoint -> make a negative input count backward [rémi]st_asText -> optionnal arg to limit digit number [marc]st_centroid -> work on circular string (simply dump points, then classical centroid) [remi]- st_exteriorRing -> make it work on multipolygon, returns a collection
st_makeline -> make it work on multipoints [pauln]- st_scale -> optionnal argument to define the center of scaling (allows to scale "in place") [marc]
- st_split -> allow splitting (multi)line by (multi)point
- st_asgml -> allow GML 3.2.1 support (not only namespace handle) http://portal.opengeospatial.org/files/?artifact_id=26765
- st_asgml (and st_geomfromgml) -> handle gml:Envelope
- ST_AsX3D -> Bug fix - how to determine if 3D geometry is convex without resorting to CGAL. http://trac.osgeo.org/postgis/ticket/3435 [regina]
- ST_GeogFromText -> make the longitude swap 180 deg when entering a latitude over 90 (postgis already counts the latitude backwards from 90 when crossing) [manu]
- slight addition
st_angle(P1,P2,P3) [remi]- st_MakeRing((multi) linestrings and/or points
- st_DumpLines -> dump everything to line (rings in poly, lines in multilines, etc. )
- st_DumpSegments -> dump segments (in the mathematical sense), that is every consecutive pairs of points in lines
- big addition
- generate grid (regular and hex)
- st_snapToLine -> st_snap = snap vertex to vertex. This one = snap vertex to vertex or edge. (note: st_snap also snap line to vertex)
- st_splitLineByPoint(line,point,tolerance) -> using curv absc, the only current way to not be sensible to precision issue (st_split doesnt work)
- st_VariableBuffer(geomM) -> buffer on geometry, the radius is given by M of each vertex, linear transition between. A lots of uses
- St_FindCurve(geom,radius_range,min_number_of_support_points,tolerance) -> in a classical geometry, find the point describing arcs
- St_MakeArc(P1,P2,centre) and St_MakeArc(P1,P2,radius) -> create arcs (_not_ using 3 points on arc!)
- St_OrientedBBox(geom) -> returns the oriented bbox of the geom (returns a geom and an angle)
- ST_KMeans -> window function - pramsey to integrate into 2.3 code base - https://github.com/pramsey/postgis/tree/kmeans