Paris Code Sprint 2016 : PostGIS Agenda

From OSGeo
Revision as of 12:51, 26 January 2016 by Mwtoews (talk | contribs) (there are several open pull requests on GitHub waiting that should be discussed)
Jump to navigation Jump to search

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
    • Implications / difficulties
  • GEOS improvements that would help PostGIS
  • Using FDW with PostGIS
    • Functions pushdown
    • Current limitations
  • PostgreSQL improvements that would help PostGIS
    • Parallel query, review experiments, plan and execute more
    • Feed back parallel query results to pgsql-hackers
  • Open pull requests from GitHub
    • Merge, modify, or reject

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

Possible PostGIS function improvement and addition

  • improvement
    • st_pointN -> make a negative input count backward
    • st_setPoint -> make a negative input count backward
    • st_asText -> optionnal arg to limit digit number
    • st_centroid -> work on circular string (simply dump points, then classical centroid)
    • st_exteriorRing -> make it work on multipolygon, returns a collection
    • st_makeline -> make it work on multipoints
    • st_scale -> optionnal argument to define the center of scaling (allows to scale "in place")
    • st_split -> allow splitting (multi)line by (multi)point
  • slight addition
    • st_angle(P1,P2,P3)
    • 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.
    • 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)