wiki:GoogleSummerCode2021

Version 6 (modified by robe, 3 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

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:

  1. git clone PostGIS code from one of Git repos
  2. git clone code from PostgreSQL git repo (master branch) -
  3. Compile both and install PostGIS 3.2 (master branch) extension into PostgreSQL 14 dev database
  4. Setup a public fork of PostGIS repo for your work and do the development work
  5. 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> ).

Note: See TracWiki for help on using the wiki.