GSoC 2014

This page is for collecting ideas for future Summer of Code projects. For the currently active Summer of Code program, see GSoC_2013
== Accepted Projects ==
The GSoC projects for 2014 are:
# Allow an unlogged table to be changed to logged
# Implementing clustering algorithms in MADlib
# Index-Only scans for GIST
# Support KNN for SP-GiST
== Project Ideas ==
Project ideas are to be added here.
(Please can we have visibility of ideas on Hackers please to avoid overreaching what is possible in the time, and also working on dubious projects.)
=== 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
* parallel vacuumdb
* Support for index-only scan for GiST
* Support for microvacuum for GiST
* Parallel GIN build using background workers
* Support KNN for SP-GiST
* 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).
* Add a "nowait" SELECT option which allows just skipping over locked rows instead of throwing an exception
* 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 
* Invent an async interface for the Append() node to use, allowing a way to parallelize queries across multiple remote FDWs or local tablespaces.
* Allow an unlogged table to be changed to logged link
* 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 ===
* cube extension improvements (indexing, type support, new KNN search metrics) link
* extending JDBC_FDW to support qual pushdown and/or writeable foreign tables API.
=== Documentation projects (not eligible for GSoC) ===
* Example database with documentation, perhaps built up from "small/simple" to "big/advanced", may be eventually incorporated/used in PG docs
=== Tools ===
* Rewrite (add) pg_dump and pg_restore utilities as libraries (.so, .dll & .dylib) link
* Extending MADlib functions to fill in (extrapolate) missing values in data sets link1 link2
== Project Admins ==
* Thom Brown
* Josh Berkus
== 2014 Mentors ==
Mentors volunteered who have been active on -hackers list:
* Stephen Frost
* Heikki Linnakangas
* David Fetter
* Alexander Korotkov
* Andreas 'ads' Scherbaum
* Atri Sharma
== Results ==
* Allow an unlogged table to be changed to logged - Fabrízio Mello
** Final evaluation: Passed
** Status of project: Committed and due to be available in the 9.5 relase.
* Implementing clustering algorithms in MADlib - Maxence Ahlouche
** Final evaluation: Passed
** Status of project: Submitted to Madlib community. Not yet committed at the time of writing this.
* Index-Only scans for GIST - Anastasia Lubennikova
** Final evaluation: Passed
** Status of project: Reviewed by Heikki and returned with feedback. There are remaining issues to be resolved.
* Support KNN for SP-GiST - Vlad Sterzhanov
** Final evaluation: Passed
** Status of project: Reviewed by Heikki and returned with feedback. There are remaining issues to be resolved.
Category:Google Summer of Code