GSoC 2026

From PostgreSQL wiki
Jump to navigationJump to search
This page is for Google Summer of Code 2026 projects.
IF YOU ARE A CONTRIBUTOR: there is a top-level GSoC page for PostgreSQL here: PostgreSQL General GSoC Page - please read this first before proceeding to contact mentors! Contribution guidelines, channels and communication methods are in this page too. PLEASE make sure you have read everything thoroughly.

Mentors mailing list for proposals: gsoc2026-mentors@lists.postgresql.org

Admins

  • Jesper Pedersen <jesperpedersen (dot) db (at) gmail (dot) com>
  • Pavlo Golub <pavlo (dot) golub (at) gmail (dot) com>

Mentors

The following individuals have been listed as possible mentors on the below projects, and/or offered to be mentors for student-proposed projects:

  • Pavlo Golub
  • Jesper Pedersen
  • Mark Wong

Template project <NAME>

Project Description

The project focuses on ...

Skills needed

  • Proficiency in ...
  • Familiarity with ...
  • Experience with ...
  • Basic understanding of ...
  • PostgreSQL

Difficulty level

Easy|Moderate|Hard

Project size

Small: approximately ~90 hours of work. Medium: approximately ~175 hours of work. Large: approximately ~350 hours of work.

Mentors

  • Mike Johnson
  • Tomas Kacka

Expected outcomes

  • A refined set of ...
  • Updated and polished ...
  • Enhanced ...
  • Documentation outlining ...
  • Tests covering ...

References

Test Development in C/C++: Implementing event-driven concurrency in OLTP test tool (dbt5)

Project Description

This project is a learning exercise in developing event-driven code by converting a thread-based concurrency model in a C++ application to use an event-driven model. DBT-5 is the application that is an open source implementation of the TPC Benchmark(TM) E Specification. This specification is an OLTP workload modeling a brokerage house. DBT-5 is currently using a thread (pthreads) based model in several programs and we want to convert that to a concurrency model that has shown itself to be significantly less resource intensive.

The general outline of the project, which can be adapted depending on the contributor's skill level:

  1. Learn how to program a simple event-driven program using libev
  2. Learn how to use DBT-5 to run a small scale test against PostgreSQL
  3. Replace the threaded model in the DBT-5, one program at a time

Skills needed

  • C and C++

Difficulty level

Moderate

Project size

Long (350 hours)

Mentors

  • Mark Wong <markwkm (at) gmail (dot) com>

Expected outcomes

  • Successful and working event-driven code.

References

  1. DBT-5 code: https://github.com/osdldbt/dbt5
  2. libev homepage: https://software.schmorp.de/pkg/libev.html
  3. Code example of using libev to convert DBT-2 (another OLTP test kit): https://github.com/osdldbt/dbt2/commit/0e6214381867dd608221a2ec30b37e560115d4e3
  4. TPC Benchmark(TM) E Specification, DBT-5 implements this: https://www.tpc.org/tpce/

Adding features to the Julia Procedural Language: pl/julia

Project Description

This project is a learning exercise in how procedural languages get implemented. pl/Julia allows stored procedures and user defined functions to be created using the Julia programming language. pl/Julia currently supports:

  • Triggers functions
  • Event triggers
  • Anonymous code blocks
  • Directly access the database
  • Some, but not all, PostgreSQL data types

The general outline of the project, which can be adapted depending on the contributor's area of interests:

  1. Updating pl/Julia to build and with the current version of Julia's C API's
  2. Support additional datatypes:
    1. DateTime / Time / Timestamp
    2. bytea
  3. Handle arrays passed as IN parameters
  4. Additional suggestions by contributor allowed here

Skills needed

  • C
  • Julia may be helpful

Difficulty level

Intermediate

Project size

Long (350 hours)

Mentors

  • Mark Wong <markwkm (at) gmail (dot) com>

Expected outcomes

  • Successful and working extension.

References

  1. pl/Julia project page: https://github.com/pljulia/pljulia
  2. Previous pl/Julia status report
  3. Julia language homepage: https://julialang.org/
  4. Julia documentation for embedding in C: https://docs.julialang.org/en/v1/manual/embedding/