From PostgreSQL wiki
This page is for collecting ideas for future Summer of Code projects.
- Improve the performance of "ALTER TABLE .. SET LOGGED / UNLOGGED" statement
- Refining Simulated Annealing approach for query optimization
- Sequential disk access during VACUUM for GiST
Project ideas are to be added here by community members.
- 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.
- extending JDBC_FDW to support qual pushdown and/or writeable foreign tables API.
- Thom Brown
- David Fetter
- Kevin Grittner
Mentors volunteered who have been active on -hackers list:
- Alexander Korotkov
- Alvaro Herrera
- Andreas Scherbaum
- Andrew Dunstan
- Ashutosh Bapat
- Atri Sharma
- Stephen Frost