Version 4 (modified by 4 years ago) ( diff ) | ,
---|
Google Summer of Code 2021
Introduction
So you are interested in becoming a Google Summer of Code student. What should you do to improve your chances of being selected? We recommend reading
- OSGeo's GSoC Recommendations for Students
- We currently have one project in mind listed below, with a mentor ready to help - refer to Idea 1 below. We are open to other ideas, but Idea 1 takes precedence since we already have a mentor for that.
- Join the PostGIS Developers list and describe your proposed project (or willingness to work on Idea 1 listed below). We will let you know if we think the project is worthwhile and doable within the allotted time you have.
Improving your chances
For most projects involving PostGIS you will eventually need the following:
- Know how to install PostgreSQL
- Know how to install PostGIS in PostgreSQL
- Know how to compile PostgreSQL code
- Know how to compile PostGIS code and run tests
- Some basic knowledge of git — at least how to do a git clone, git push, git pull and pull requests
While you can learn to do these things and ask questions, we would prefer students to know these before starting on a PostGIS project.
Idea 1: Augment PostGIS 3.2 with GIST support added to PG14
Expected outcome: Speed up GiST index building in PostGIS
Skills required: C or willing to learn, ability to compile PostgreSQL code, ability to compile PostGIS code, some familiarity with PostGIS / PostgreSQL is preferable
Mentors: Giuseppe Broccolo, Regina Obe
Difficulty: Medium
Student Test:
- git clone PostGIS code from one of PostGIS repos -
- git clone code from PostgreSQL git repo (master branch) -
- Compile both and install PostGIS 3.2 (master branch) extension into PostgreSQL 14 dev database
- Setup a public fork of PostGIS repo for your work and do the development work
- Once ready submit a pull request to any of PostGIS repos
Additional detail:
Recently this patch <https://commitfest.postgresql.org/29/2276/> which adds more infrastructure to the GiST has been included in PG14. It should speed up the build of a GiST index after some (fast) pre-sorting of the data which needs to be indexed. Some tests for the PG's internal type point (that uses Zsort as fast pre-sorting of the data) showed that the build is up to 5 times faster.
I'd like to study a possible implementation for PostGIS data types. Basically, it would require to add this support function <https://github.com/glukhovn/postgres/blob/225a49161fae9388651373d4beb8dcba99059339/src/include/access/gist.h#L37> and this other one <https://github.com/glukhovn/postgres/blob/225a49161fae9388651373d4beb8dcba99059339/src/include/access/gist.h#L38> in the operator classes which use the GiST infrastructure (e.g. this one <https://github.com/postgis/postgis/blob/8b13c3e2f8366d902dbf516ec17de09ae84361f4/postgis/postgis.sql.in#L781> ).