GSoC 2012

From PostgreSQL wiki
Jump to navigationJump to search


The GSoC projects for 2012 are:

  1. Better indexing for ranges
  2. Document Collection Foreign-data Wrapper
  3. ...

What is GSoC?

Google Summer of Code (GSoC) is a global program that offers student developers stipends to write code for various open source software projects. We have worked with several open source, free software, and technology-related groups to identify and fund several projects over a three month period. Since its inception in 2005, the program has brought together over 4,500 students and more than more than 4,000 mentors & co-mentors from over 85 countries worldwide, all for the love of code. Through Google Summer of Code, accepted student applicants are paired with a mentor or mentors from the participating projects, thus gaining exposure to real-world software development scenarios and the opportunity for employment in areas related to their academic pursuits. In turn, the participating projects are able to more easily identify and bring in new developers. Best of all, more source code is created and released for the use and benefit of all.

PostgreSQL has an official summer of code page:

Advice for Students

We have developed the following Advice for Students page to get you started.

Also, students who discuss their proposals with Postgres project members *before* the application deadline are much more likely to be successful.

Mailing list for student questions

For GSoC program questions and discussion, please subscribe to:

We can have non-code related discussions on this list, and help answer questions about proposal writing.

Discussion of code should be done on the list for the specific project a student is working on.


We have an IRC channel at #postgresql and you are welcome to answer questions. Our GSoC Admins are: selenamarie, agliodbs and xzilla. Do not DM them without asking first!

You are welcome to ping any of us in the channel, or ask the channel general questions about a proposal. If you do not find help in the channel, feel free to send an email to for help.

Proposal Format

Students are responsible for writing a proposal and submitting it to Google before the application deadline. The following outline was adapted from the Perl Foundation open source proposal HOWTO. A strong proposal will include:

  • Project Title
  • Name of proposer and email
  • Synopsis
  • Benefits to the PostgreSQL Community
  • Quantifiable results
  • Project Details
  • Inch-stones (project broken into small, distinct chunks)
  • Project Schedule
  • Completeness Criteria
  • Bio
    • Blog
    • Github
    • @Twitter

Project Ideas

Tool improvments

  • pg_dump/pg_restore libraries as shared objects (better error-handling, process-monitoring, objects selection and creating in-memory dumps)
  • Develop an iOS-native interface for PostgreSQL for Apple devices. This might be a fork of pgAdmin, or a brand-new interface.
  • PGXN: Improve the PGXN command-line client for installation and upgrade of extensions.

Driver Improvements

Any of the following PostgreSQL drivers could use work on feature support and performance:

  • JDBC
  • Erlang
  • Node.js (integrate with 9.2's JSON and PL/v8)
  • Ruby

Pgadmin improvements

Rewrite the object browser and connection management code to:

  • Ensure nodes are always up to date when clicked, and do not display out of date cached data
  • Properly [attempt to] reconnect to the database when connections are lost, without losing application state.
  • Pool database connections, and close/reopen them when needed rather than leave them idle for long periods of time.

Query tool enhancements:

  • Allow queries to be executed on multiple databases simultaneously, displaying results from all databases.
  • Support psql \ commands, including \copy and \connect
  • Support execution of multiple data returning statements in a single query, displaying the results from each.


  • Redesign the Table properties dialogue to incorporate all sub-dialogues in one easy-to-use dialogue (existing sub-dialogues will remain for direct inspection of sub-objects).
  • Data import/export tool, designed to be easy to extend for new import/export formats. Should include a data transformation and mapping layer (using Python?) to allow data to be manipulated during import/export.

Foreign Data Wrappers

Write a foreign data wrapper for DB2, Firebird, or anything else that seems interesting or fun.

Advanced Features

JSON Indexing/Extraction: Add indexable element extraction to PostgeSQL's JSON type which does not depend on PL/v8.

Materialized Views: add support for one type of automated updating of materialized views: sychronous, asyncronous-queued, or scheduled.

PGXN Improvements

Key Info

  • March 9th, Mentoring Application Due
  • April 6th, Student Applications Deadline

Project Admins

Coming soon

2012 Mentors

  • Pavel Golub - Postgres external tools developer
  • Heikki Linnakangas - Postgres Committer
  • Dave Page - Former mentor - pgAdmin, Windows, Packaging, Infrastructure
  • Jehan-Guillaume de Rorthais - phpPgAdmin
  • Dave Cramer - JDBC
  • Kevin Grittner - SSI, transaction engine
  • Magnus Hagander - Windows support, SSL,
  • David Wheeler - Perl,
  • Stephen Frost - Patch reviewer, developer

Past Success

Need to add


  • usable code
    • useful/novel ideas
    • research projects
  • longer term contributors


  • Kick-off Meeting for Community Members
  • Update GSOC page
  • Advertising?
  • Blog that we're participating and seeking students
  • Round of private emails to people who have participated in the past: Heikki, Simon, Mark
    • request interest, and then follow up in asking about possible topics for students
  • Mentor recruitment and then email to -hackers
    • do this much later when we have some proposals in?
  • Recruitment -- no organized group effort?
    • -announce, -general, -hackers
    • user group lists
    • phppgadmin/pgadmin
    • berkeley
    • Univ. of Maryland -- contact them?
  • Identify the commitfest that the code will be submitted to


  • Stuff to keep students together:
    • Regular blogging from students
    • weekly group IRC checkin? -- two checkin times maybe?
  • Have students communicate on -hackers where appropriate (didn't really work?)
    • Or other relevant -devel lists
  • Mailing list
    • pgsql-students (?) vs. -hackers (?) maybe up to mentor?
    • mentors mailing list -admin mailing list, berkus said?
    • students mailing list via gsoc