GSoC/GCI Archive
Google Summer of Code 2010

PostgreSQL

Web Page: http://www.postgresql.org/developer/summerofcode

Mailing List: pgsql-hackers@postgresql.org, http://archives.postgresql.org/pgsql-hackers/

PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. PostgreSQL boasts sophisticated features such as Multi-Version Concurrency Control (MVCC), point in time recovery, tablespaces, asynchronous replication, nested transactions (savepoints), online/hot backups, a sophisticated query planner/optimizer, and write ahead logging for fault tolerance. It supports international character sets, multibyte character encodings, Unicode, and it is locale-aware for sorting, case-sensitivity, and formatting. It is highly scalable both in the sheer quantity of data it can manage and in the number of concurrent users it can accommodate.

Projects

  • Add JSON datatype to PostgreSQL JSON is a text serialization format similar in purpose to XML. PostgreSQL already has an XML datatype, along with XML access and manipulation functions such as xmlconcat, xmlforest, etc.. I propose adding a JSON datatype and related functions to PostgreSQL. Because JSON's structure is somewhat different than XML's, the json* functions will likely be different. When this project is completed, it will add a JSON datatype to PostgreSQL along with ways to convert sets to/from JSON.
  • add MERGE command The MERGE command is used to combine the content of two tables into one table according to the user defined matching condition. This function is useful and has been involved in other popular DBMS. However, in the latest edition of PostgreSQL, this command is not implemented yet. I am applying to participate in adding the command in PostgreSQL as a gSoC student. The whole work will include coding works all through the parser, planner and executor.
  • Database Designer for pgAdmin Main idea is to build a physical database modeler for pgAdmin that improve developers productivity. I propose to implement this modeler accomplishing with the Model Driven Application (MDA) architecture, and always thinking in the way to create a shared rendering mini-engine that can be use in the future, under the philosophy of the model view controller (MVC) pattern, to allow introduction of new features at a near future.
  • Improve phpPgAdmin ergonomy The project goal is to improve the ergonomics of phpPgAdmin. This will bring many benefits, among them, it is important to say that users will feel more comfortable using phpPgAdmin. Ergonomics will cause phpPgAdmin becomes more enjoyable and easier.
  • PgAdmin-Enhancement – Database Schema Difference Visualizer The idea is to make enhancement to pgAdmin,which would provide the user with an intuitive graphical comparer and a synchronizing feature. The user could know difference between two selected database(objects), and would enable user to visualize the comparison before applying the difference on the source/target db's. This feature would enhance the developer/dba ability to not only apply all changes with few clicks, but to be sure what would happen to the data base(schema) in question.