GSoC 2015

From PostgreSQL wiki
Jump to: navigation, search

This page is for collecting ideas for future Summer of Code projects.

Accepted Projects

  1. Improve the performance of "ALTER TABLE .. SET LOGGED / UNLOGGED" statement
  2. Refining Simulated Annealing approach for query optimization
  3. Sequential disk access during VACUUM for GiST

Project Ideas

Project ideas are to be added here by community members.


  • Add RETURNING to DDL (CREATE, ALTER, DROP) and possibly DCL (GRANT, REVOKE) link
  • Allow different datatypes to be sliced differently, when TOASTed link
  • Sequential disk access during VACUUM for GiST/GIN
  • Support for microvacuum for GiST
  • Parallel GIN build using background workers
  • Implement WAL logging for hash indexes
  • Indexing prolonged geometrical objects (i.e. boxes, circles, polygons, not points) with SP-GiST by mapping to 4d-space.
  • Make index selection sublinear. Useful for index partitioning (vs table partitioning).
  • Optimization- add to the join removal code the ability to remove joins to tables when the join is on a foreign key column (where all entries must exist in the parent anyway)
  • Optimization- Check the set of conditionals on a WHERE clause against CHECK constraints on the table being queried and remove any conditionals which *must* be true due to the CHECK constraints
  • Investigate the HashJoin code- specifically, review cases where the larger table is hashed instead of the smaller, test making NTUP_PER_BUCKET variable, etc.
  • Improve plpgsql error checking- look at existing discussions around GUCs which can be set to increase the warnings that plpgsql throws.
  • per-function temp tables (or some kind of scoping for temp tables when used inside of plpgsql code)
  • date_trunc() supporting intervals
  • Modify the postgres_fdw to allow a server to be defined as "autocommit" or similar- to allow for autonomous transactions
  • Modify plpgsql to complain about unused variables
  • Comments for function parameters
  • Finally clause for pl/pgsql exception handling
  • Foreign keys for arrays link PATCH
  • Invent an async interface for the Append() node to use, allowing a way to parallelize queries across multiple remote FDWs or local tablespaces.
  • Implement a way to store/re-use the constraint exclusion analysis results for an inheiritence-based partition setup
  • Modify snapshot export to also export lock info, to avoid deadlocks between parallel pg_dump and concurrent DDL
  • PL/PgSQL x++; x+= 2; operators.
  • bytea '&' and '|' operators which returns a bytea, written efficiently in C by stepping through the bytea's in chunks, perhaps.


  • extending JDBC_FDW to support qual pushdown and/or writeable foreign tables API.

Project Admins

  • Thom Brown
  • David Fetter
  • Kevin Grittner

2015 Mentors

Mentors volunteered who have been active on -hackers list:

  • Alexander Korotkov
  • Alvaro Herrera
  • Andreas Scherbaum
  • Andrew Dunstan
  • Ashutosh Bapat
  • Atri Sharma
  • Stephen Frost