GSoC 2015

From PostgreSQL wiki
Jump to navigationJump to 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.

Core

  • UPDATE ... RETURNING OLD link
  • 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.

Extensions

  • 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