GCI 2018
This page is for listing tasks and collecting ideas for the yearly Google Code-in contests.
https://codein.withgoogle.com/
https://developers.google.com/open-source/gci/how-it-works
Governance
Google Task Description
A task is a small project that is expected to take between 3-5 hours of work to complete. Tasks are categorized with the following labels:
- Code: Tasks related to writing or refactoring code
- Documentation/Training: Tasks related to creating/editing documents and helping others learn more
- Outreach/Research: Tasks related to community management, outreach/marketing, or studying problems and recommending solutions
- Quality Assurance: Tasks related to testing and ensuring code is of high quality
- Design: Tasks related to user experience research or user interface design and interaction
Regarding Project Ideas
Project ideas are to be added below by community members.
NOTE: Google looks for the following for each task:
- A mix of tasks across multiple categories. (Code, Documentation/Training, Outreach/Research, Quality Assurance, and User Interface)
- Tasks of appropriate scope, length, and complexity.
- Fully fleshed out descriptions with enough information to get started on.
- Clear and understandable descriptions and titles.
- Appropriate tags for searchability.
Please add new sections following this format.
Mentors (2018)
The following individuals have been listed as possible mentors on the below projects, and/or offered to be mentors for student-proposed projects:
- Renee Phillips
- Lætitia Avrot
- Stephen Frost
- Sarah Conway
- Evan Macbeth
- Keith Fiske
- Tahir Ramzan
- Jeremy Schneider
- Amit Kumar Jaiswal
- Andreas Scherbaum
- Pavan Agrawal
Tasks
Give a Local Presentation
Task Description
PostgreSQL is a rapidly growing open source database, but one area that needs improvement is reaching outside of the internal community to the external open-source world to educate others about PostgreSQL and help them get started. Because of that, we can use your help to present a talk focused on PostgreSQL to an audience of your choosing. Examples would include local technology groups, technology user groups, a school, or clubs in your area. Some potential audiences can be found through Meetup: http://meetup.com/. The length of the talk can vary from a 5 minute lightning talk to a 30-60 minute long presentation or tutorial.
The expected work to be uploaded will be a PDF version of the slides used during the presentation.
Tags
- Outreach
- Research
- Presentation
- SQL
- Databases
Categories
Outreach/Research
Create an Educational Video
Task Description
More online resources are always helpful for those learning PostgreSQL. Create a video demonstration illustrating a topic of your choosing in PostgreSQL; some examples would include a beginners introduction and history of PostgreSQL, how to get started in PostgreSQL, how to perform load balancing and high availability in a PostgreSQL cluster, how to run PostgreSQL within a Kubernetes or OpenShift environment, different monitoring statistics for your cluster, and so on.
The video should be between 5-15 minutes, and must be your original work.
Tags
- Outreach
- Documentation
- Video
- Tutorial
- Training
- SQL
- Databases
Categories
Documentation/Training
Developing a Lesson Plan
Task Description
A major priority of the PostgreSQL organization is to expand awareness and education of PostgreSQL throughout the world, in a diverse and inclusive manner. One of our goals is to educate all groups, ranging from middle school, high school, and college students to adults from all ages and backgrounds, of open source technology and PostgreSQL.
The expected outcome of this task is to draft sample training materials and a lesson plan for a younger age group (ranging from kids to teenagers) on getting started with PostgreSQL. It should be fun and engaging, with interactive tasks for hands-on learning. This can be submitted in any format, ranging from slides to a document-based format. The lesson plan should be prefaced with the intended audience, the difficulty level, and the estimated amount of time to complete the training.
Tags
- Outreach
- Research
- Training
- SQL
- Databases
Categories
Outreach/Research
Design a Logo for a Conference
Task Description
PostgreSQL has several conferences that revolve around educating and discussing PostgreSQL within the community. One of these conferences, Postgres Open SV 2019, is in need of a new, updated, and high-resolution logo for next year's conference. The website from 2018 with the currently existing logo can be found here:
https://2018.postgresopen.org/
The requirements are as follows:
1) Submissions should be high-resolution (PNG or SVG) and should include a source file.
2) The logo should resonate well with the current website design, as next year's design will be similar to the existing.
3) While it does not need to resemble the current logo, it does need to center around an elephant as the theme. The reasoning for this is the official logo for PostgreSQL itself is an elephant: https://www.postgresql.org/media/img/about/press/elephant.png
4) Provide a brief summary of your logic behind the design of the logo and your approach.
Tags
- User Interface
- Graphics
- Design
- Logo
Categories
User Interface
Reviewing Patches
Task Description
PostgreSQL development revolves around CommitFest periods where any and all volunteers are needed to assist in reviewing proposed patches. Your task would be to select an open patch, evaluate it, and ensure it does what the author intends.
Please demonstrate your testing process and include screenshots of the steps taken, along with the proof that it is working, in a document that will be submitted for evaluation as proof of completing the task.
More information can be found here:
https://wiki.postgresql.org/wiki/Reviewing_a_Patch
Tags
- Code
- Review
- Bug fixing
- Patch
- SQL
- Databases
- C
- C-language
Categories
Quality Assurance
Code
Improve PostgreSQL Regression Test Coverage
Task Description
PostgreSQL can use additional development in the area of regression tests. Regression testing ensures that within PostgreSQL, new changes and additions aren't breaking existing functionality. Your task will be to introduce new regression tests for command line utilities and extensions that are poorly covered, as shown on https://coverage.postgresql.org/.
The current regression test coverage for PostgreSQL isn't great, to the point where some areas of the code are covered only at single-digit-percent levels.
Having good regression tests for such an important project as PostgreSQL is really key to minimizing the chance that any regressions are introduced. PostgreSQL's build system includes a "make coverage-html" to generate the report.
Please note that this project involves writing SQL code and Perl code, at a minimum, to implement the tests necessary to increase the code coverage of the PostgreSQL regression tests.
More information can be found in the official documentation on regression tasks.
Tags
- Code
- Review
- Bug fixing
- Patch
- SQL
- Perl
- Databases
- C
- C-language
- Development
Categories
Quality Assurance
Code
pgAdmin 4 Bug - Setting up SMTP with Docker
Task Description
There is no currently existing documentation for setting up SMTP when running the official Docker image for pgAdmin 4. Without SMTP, users cannot change their password or use the "forgot password" option. The expected outcome from this task would be to determine how to configure SMTP with the Docker container and write up documentation illustrating the steps.
A requirement would be to create a PostgreSQL community account. The resulting documentation would be sent in to the pgadmin4-hackers mailing list for review, and uploaded as a file for proof of completion. https://www.postgresql.org/list/pgadmin-hackers/
The original bug report can be found here: https://redmine.postgresql.org/issues/3599
Tags
- Code
- Review
- Bug fixing
- Patch
- SQL
- Databases
- Development
- Documentation
Categories
Quality Assurance
Code
Documentation / Training
PostGIS Bug - Windows Installer
Task Description
When installing PostGIS on Microsoft Windows, the installer shows a "Database Connection Information" dialog to supply User Name, Password, and Port. The installer will begin to install PostGIS, however, if there is a mistake in the connection information, the installer fails part-way in, requiring it to be run again from the beginning.
It would be nice to allow multiple attempts to correct the connection information, if say, there was a typo with the password. This way the installer only needs to be run once (for example, using Application Stack Builder, which downloads the installer to %TEMP%).
Not only should the connection info establish a connection to a database, but select count(*)=1 from pg_user where usename=$1 and usecreatedb;. If there is an error, the user should be able to go back and correct, try again, repeat or cancel. Correct connection info should be established before starting the install process.
A requirement would be to create a PostgreSQL community account. The resulting documentation would be sent in to the postgis-devel mailing list for review, and uploaded as a file for proof of completion. https://lists.osgeo.org/mailman/listinfo/postgis-devel
The original bug report can be found here: https://trac.osgeo.org/postgis/ticket/516
Tags
- Code
- Review
- Bug fixing
- Patch
- Authentication
- SQL
- Databases
- Development
- Documentation
Categories
Quality Assurance
Code
Documentation / Training
Learn about pgsql-bugs
Task Description
The purpose of this task is to introduce you to community involvement and participation.
Please review the pgsql-bugs mailing list archives, located here, and look for recently reported bugs. Your task will be to pick a recently reported issue and recreate it on your own system.
The expected submission for this task will be a link to the mailing list archive for the relevant thread and a screenshot of the reproduced problem on your machine, showing the problem reported by the original user. Please additionally include the operating system and version of PostgreSQL you are running, in addition to the steps taken to reproduce the original issue.
Tags
- Code
- Review
- Bug fixing
- Patch
- Quality Assurance
- SQL
- Databases
- Development
- Testing
Categories
Quality AssuranceParticipate in Mailing Lists
Code
Learn about pgsql-performance
Task Description
The purpose of this task is to introduce you to community involvement and participation.
Please review the pgsql-performance mailing list archives, located here, and look for recently reported bugs. Your task will be to pick a recently reported issue and recreate it on your own system.
The expected submission for this task will be a link to the mailing list archive for the relevant thread and a screenshot of the reproduced problem on your machine, showing the problem reported by the original user. Please additionally include the operating system and version of PostgreSQL you are running, in addition to the steps taken to reproduce the original issue.
Tags
- Code
- Review
- Bug fixing
- Patch
- Quality Assurance
- SQL
- Databases
- Development
- Testing
Categories
Quality Assurance
Code
PostgreSQL US - Develop an Integrated Form
Task Description
The United States PostgreSQL Association, affectionately known as PgUS, is a IRS 501(c)(3) non-profit public charity that has the intention of supporting the growth and education of PostgreSQL, The World's Most Advanced Open Source Database, throughout the United States.
Your task will be to fork the official repository hosting the PostgreSQL US website and propose a patch / pull request that integrates the currently existing Diversity Scholarship form hosted on Google Forms into a web page of its own.
A further description of the Diversity Scholarship and its purpose can be found here.
Tags
- Code
- Design
- User Interface
- HTML
- CSS
- Bootstrap
Categories
Code
User Interface
PostgreSQL US - Develop a Resolution Tracker
Task Description
The United States PostgreSQL Association, affectionately known as PgUS, is a IRS 501(c)(3) non-profit public charity that has the intention of supporting the growth and education of PostgreSQL, The World's Most Advanced Open Source Database, throughout the United States.
Your task will be to fork the official repository hosting the PostgreSQL US website and propose a patch / pull request that contains a form in which board members can record resolutions in addition to information relating to who voted on the resolution, what the resolution is along with a description, and what the resulting votes are.
Tags
- Code
- Design
- User Interface
- HTML
- CSS
- Bootstrap
Categories
Code
User Interface
PostgreSQL US - Draft a new Website Design
Task Description
The United States PostgreSQL Association, affectionately known as PgUS, is a IRS 501(c)(3) non-profit public charity that has the intention of supporting the growth and education of PostgreSQL, The World's Most Advanced Open Source Database, throughout the United States.
The official website could use a design refresh. Your task will be to redesign one front page and one side page in Photoshop, GIMP, or some other such editing software.
The requirements for the submission will be as follows:
1) There should be high resolution images attached for each page (SVG, PNG, or PDF).
2) Additional designs should be created for both the tablet and mobile views of the website, for both the front page and the chosen side page.
3) The design should incorporate elephants in some way, in addition to using the hex color #336791 in the general color scheme. It does not need to be the primary color.
4) Provide a brief summary of your logic behind the design of the webpages and your approach.
Tags
- User Interface
- Graphics
- Design
- Logo
- Frontend
Categories
User Interface
Enhancing amcheck for all AMs
Task Description
Amcheck is a PostgreSQL extension to verify the integrity of index against invariants that should always hold in the valid index. This tool is designed to diagnose corruption and help developers during the implementation of new features in access methods. Currently, amcheck supports only B-tree. Also, work on GiST is in progress https://github.com/petergeoghegan/amcheck/pull/11 But amcheck could be used for many other indexes: GIN, SP-GiST, BRIN, RUM. For each AM it is necessary to deduce invariants to check, implement this checks and test against various index states. Also, it would be useful to unite all AM check methods in a single entry point for checking index. The interface of check functions can also be enhanced in favor of more detailed corruption information. It would be useful to model various corruptions, including both those which can be found by data_checksums and those which cannot.
The project requires a good grasp of algorithms behind very sophisticated data structures, along with concurrency and recovery over them.
The expected outcome would be to introduce support for a major PostgreSQL AM in amcheck as a proposed patch.
Tags
- Code
- C
- C-language
- SQL
- Programming
- Algorithms
Categories
Code
Interview PostgreSQL Contributors
Task Description
The purpose of this task would be for you to reach out to various PostgreSQL community contributors and perform a remote interview with one or more contributors. Some example questions could include:
- how they got started with PostgreSQL
- what they enjoy most about working with PostgreSQL
- how they got involved in the community
- what challenges are involved
- how the community has evolved over time and where it is headed
- what their advice is to someone looking to begin learning about PostgreSQL or contribute to the project
and so on.
The ultimate goal would be to develop a blogpost based on the interview that could be published through Planet PostgreSQL. The result would be uploaded as a text file or PDF.
The list of community contributors can be found here.
Tags
- Blogpost
- Outreach
- Research
- Interview
- Writing
Categories
Outreach / Research
Review and improve the "Getting Started" tutorial in the PostgreSQL Documentation
Task Description
The PostgreSQL documentation has a set of existing tutorials, one of which is "Getting Started". Attempt to follow this tutorial to install PostgreSQL, create a PostgreSQL database and then access that database. Make notes of issues trying to follow the tutorial, areas where the tutorial lacks specific information to be able to accomplish the task, places where the tutorial doesn't provide information about how to tell if a given step was successful or not, and other items which could be improved.
Using these notes, make changes to the PostgreSQL tutorial in its source format to address the deficiencies and submit these changes as patches to the PostgreSQL source tree so that they can be included in PostgreSQL in the future. These changes must be able to be patched to the PostgreSQL source code and the resulting changes built using the PostgreSQL build tool-chain.
Tags
- Outreach
- Documentation
- Tutorial
- Training
- SQL
- Databases
Categories
Documentation/Training
Review and improve the "SQL Language" tutorial in the PostgreSQL Documentation
Task Description
The PostgreSQL documentation has a set of existing tutorials, one of which is "SQL Language". Attempt to follow this tutorial, after installing PostgreSQL and creating a database, to use and learn SQL with PostgreSQL. Make notes of issues trying to follow the tutorial, areas where the tutorial lacks specific information to be able to accomplish the task, places where the tutorial doesn't provide information about how to tell if a given step was successful or not, and other items which could be improved.
Using these notes, make changes to the PostgreSQL tutorial in its source format to address the deficiencies and submit these changes as patches to the PostgreSQL source tree so that they can be included in PostgreSQL in the future. These changes must be able to be patched to the PostgreSQL source code and the resulting changes built using the PostgreSQL build tool-chain.
Tags
- Outreach
- Documentation
- Tutorial
- Training
- SQL
- Databases
Categories
Documentation/Training
Review and improve the "Advanced Features" tutorial in the PostgreSQL Documentation
Task Description
The PostgreSQL documentation has a set of existing tutorials, one of which is "Advanced Features". Attempt to follow this tutorial, after installing PostgreSQL and creating a database and learning some SQL, to work with some of the Advanced Features of PostgreSQL including creating views, foreign keys, transactions, window functions, and inheritance. Make notes of issues trying to follow the tutorial, areas where the tutorial lacks specific information to be able to accomplish the task, places where the tutorial doesn't provide information about how to tell if a given step was successful or not, and other items which could be improved.
Using these notes, make changes to the PostgreSQL tutorial in its source format to address the deficiencies and submit these changes as patches to the PostgreSQL source tree so that they can be included in PostgreSQL in the future. These changes must be able to be patched to the PostgreSQL source code and the resulting changes built using the PostgreSQL build tool-chain.
Tags
- Outreach
- Documentation
- Tutorial
- Training
- SQL
- Databases
Categories
Documentation/Training
Add tutorial on partitioning to PostgreSQL Documentation
Task Description
The PostgreSQL documentation has a section for tutorials, but lacks a tutorial which covers partitioning of a PostgreSQL table.
The tutorial should be in the same format as the PostgreSQL documentation and should be submitted as a patch to the PostgreSQL source code and successfully built using the PostgreSQL build tool-chain. The simplest approach to writing this documentation is to pull down the PostgreSQL source code, build all of PostgreSQL, including the documentation, then work with PostgreSQL to set up partitioning following the existing documentation and ultimately make a copy of an existing tutorial section and then rewrite it to be the partitioning tutorial.
Tags
- Outreach
- Documentation
- Tutorial
- Training
- SQL
- Databases
Categories
Documentation/Training
Add tutorial on physical Replication to PostgreSQL Documentation
Task Description
The PostgreSQL documentation has a section for tutorials, but lacks a tutorial which covers physical replication between instances.
The tutorial should be in the same format as the PostgreSQL documentation and should be submitted as a patch to the PostgreSQL source code and successfully built using the PostgreSQL build tool-chain. The simplest approach to writing this documentation is to pull down the PostgreSQL source code, build all of PostgreSQL, including the documentation, then work with PostgreSQL to set up physical replication following the existing documentation and ultimately make a copy of an existing tutorial section and then rewrite it to be the physical replication tutorial.
Tags
- Outreach
- Documentation
- Tutorial
- Training
- SQL
- Databases
Categories
Documentation/Training
Add tutorial on logical Replication to PostgreSQL Documentation
Task Description
The PostgreSQL documentation has a section for tutorials, but lacks a tutorial which covers logical replication between PostgreSQL systems.
The tutorial should be in the same format as the PostgreSQL documentation and should be submitted as a patch to the PostgreSQL source code and successfully built using the PostgreSQL build tool-chain. The simplest approach to writing this documentation is to pull down the PostgreSQL source code, build all of PostgreSQL, including the documentation, then work with PostgreSQL to set up logical replication following the existing documentation and ultimately make a copy of an existing tutorial section and then rewrite it to be the logical replication tutorial.
Tags
- Outreach
- Documentation
- Tutorial
- Training
- SQL
- Databases
Categories
Documentation/Training
Add pg_copy utility to properly handle WAL archiving
Task Description
The PostgreSQL documentation uses cp as an example of an archive_command. This is not safe because cp does not sync the file or directory before returning success.
Write a new utility called pg_copy that will copy a file and ensure it is durable before returning success. Existing files should not be overwritten, but the command may optionally calculate the SHA1 checksum of the destination file and return success if the source file has the same checksum.
Tags
- Code
- C
- C-language
- Programming
Categories
Code
Find & Post Job Listings
Task Description
There are several entry-level technology job openings for PostgreSQL; your task would be to search for all relevant listings in your local area such as from newspapers and newspaper websites, Facebook groups, and websites of companies based in your area or those offering remote positions and compile them into a list. This list would then be provided to local high schools and community colleges in your area on their job postings board.
Some examples of PostgreSQL job listings can be found in the pgsql-jobs mailing list archives, found here:
https://www.postgresql.org/list/pgsql-jobs/
https://www.postgresql-archive.org/PostgreSQL-jobs-f2207519.html
The expected submission for this task would be the list itself as well as a list of the high schools and colleges where it was posted.
Tags
- Outreach
- Research
- Jobs
Categories
Outreach / Research
Help ESL Students with Job Applications
Task Description
As a follow-up to "Find and Post Job Listings", you can additionally volunteer to assist with spell/grammar/language checking resumes and cover letters for ESL students applying for PostgreSQL job listings. This can extend to assisting ESL students draft their resumes.
The expected submission would be the original posting advertising your services, where the posting was published (in-person at high schools/colleges, and/or online) the number of students that contacted you, and the number of students you were able to help.
Tags
- Outreach
- Research
- Jobs
Categories
Outreach / Research
Add autovacuum work queue view
Task Description
It is not at all clear which relations the autovacuum process will work on next. It would be good to know what jobs are coming up and also the length of the queue.
Add a system view that exposes the autovacuum queue so it can be queried by a system administrator. Autovacuum should also be modified to use the new system view.
Tags
- Code
- C
- C-language
- Programming
Categories
Code
Setup a Coffee Meet
Task Description
Find a willing PostgreSQL contributor or committer in your area and arrange a coffee-shop meeting where young people or students of diverse backgrounds can come and have coffee with them to discuss PostgreSQL and ask questions about how to get started learning the technology.
HINT: A meetup of this kind can be advertised to local audiences through Meetup, Facebook, Twitter (using appropriate hashtags), local high schools, or community colleges, as some examples. Try to schedule it out between 2-4 weeks in advance.
The expected submission for this task would be to provide a link to the advertised meetup as well as the name of the contributor or committer that is willing to participate in the meeting. It would be preferred to include a summary of how the meeting went overall, how many attendees there were, and what kinds of questions were asked.
The list of community contributors and committers can be found here:
https://www.postgresql.org/community/contributors/
https://wiki.postgresql.org/wiki/Committers
Tags
- Outreach
- Research
- Jobs
- Trainng
- Interview
Categories
Outreach / Research
Add documentation for JDBC driver CopyManager API
Task Description
The PostgreSQL JDBC driver, pgjdbc, supports COPY commands to both STDIN and STDOUT via a non-JDBC extension, the CopyManager interface. While the driver has supported this functionality for many years, it's not documented in the official docs.
The purpose of this task is to add some basic documentation of how to use the CopyManager interface to the official pgjdbc docs. The test suite for the pgjdbc driver includes examples of how to use the CopyManager interface and would a good resource for real world usage.
The expected submission for this task will be a pull request on the pgjdbc GitHub page, https://github.com/pgjdbc/pgjdbc, for the documentation patch.
Tags
- JDBC
- COPY
- Documentation
Categories
Code
Documentation / Training
Review and improve the documentation for PG Partition Manager
Task Description
The pg_partman documenation has grown quite extensive over the years since it was released. Looking for a basic review of the top level README and files contained in the docs folder for grammar and clarity. Any other recommendations to improve documentation are welcome as well.
Using Github, fork the repository and submit documentation improvements back via a pull request.
https://github.com/pgpartman/pg_partman
Tags
- Documentation/ Training
- SQL
- Databases
Categories
Documentation/Training
Replace use of SplitIdentifierString with SplitGUCList in PG Partition Manager
Task Description
pg_partman has very minimal C code, but it should still be kept up to date to use new APIs when they become available. A small fix would be to see if it can take advantage of a new function to properly split a comma separated custom variable used in the postgresql.conf file. It currently uses SplitIdentifierString() to do this and PostgreSQL 10.5 introduced the new functions SplitGUCList().
Code still needs to be kept backward compatible with older versions that don't have this function yet for a little while. Ensure this is done properly.
Either provide a Github pull request adding this feature or provide reasons why this new function may not be appropriate to use in this case.
https://github.com/pgpartman/pg_partman
Tags
- Code
- C
- C-language
- SQL
- Programming
Categories
Code
Document a working example of how to migrate a table to native partitioning in PG11 with minimal downtime
Task Description
The new DEFAULT partition feature in PG11 should make migrating an existing table to a natively partitioned one a lot easier. However, a new child table with constraints that would match data that exists in that DEFAULT table are not allowed to be added. Using PostgreSQL's transaction system, document a method to move the data and attached a child table with minimal downtime to users of the table in question.
The main objective of this task is to provide the working example. If there is any difficulty working out the commands or methods to do this, those answers can be provided. Documentation should be provide in markdown format.
https://github.com/pgpartman/pg_partman
Tags
- Documentation/ Training
- SQL
- Databases
Categories
Documentation/Training
Document how to migrate a trigger-based partitioned table to a natively partitioned table
Task Description
PostgreSQL 10 introduced native partitioning, but previous versions had a method of partitioning that used a combination of triggers, constraints & inheritance.
https://www.postgresql.org/docs/9.6/static/ddl-partitioning.html
Document a method that can be used to migrate to the new native partitioning scheme with minimal downtime to the end users of that table.
https://www.postgresql.org/docs/10/static/ddl-partitioning.html#DDL-PARTITIONING-DECLARATIVE
The main objective of this task is to provide the working example. If there is any difficulty working out the commands or methods to do this, those answers can be provided. Documentation should be provide in markdown format.
https://github.com/pgpartman/pg_partman
Tags
- Documentation/ Training
- SQL
- Databases
Categories
Documentation/Training
Allow pg_partman background worker to optionally use new maintenance procedure
Task Description
pg_partman's background worker currently uses the run_maintenance() function. PostgreSQL 11 introduced procedures which allows committing in batches within a single procedure call. A run_maintenance_proc() was added in version 4.0.0 of pg_partman, but the background worker does not use this yet. Implement a postgresql.conf configuration option (GUC) to allow the background worker to optionally use the new procedure if PG11 is in use.
Code still needs to be kept backward compatible with older versions of postgresql. Ensure this is done properly.
Either provide a Github pull request adding this feature or provide reasons why this new procedure may not work via the background worker.
https://github.com/pgpartman/pg_partman
Tags
- Code
- C
- C-language
- SQL
- Programming
Categories
Code
Improve pg_top readability when reporting executing queries
Task Description
pg_top can report currently running queries, but it is not always readable:
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 12329 postgres 20 0 179M 12M sleep 0:00 0.00% 0.00% SELECT pid, query?FROM pg_stat_activity; 12061 postgres 20 0 178M 11M sleep 0:00 0.00% 0.00% select pg_sleep(10);
The code could be improved to remove superfluous white spaces and control characters when reporting the query.
Tags
- Code
- C
- C-language
- Programming
Categories
Code
Write a PostgreSQL technical mumbo-jumbo dictionary
Task Description
The main goal of this task is to create a HTML website/page to explain some technical words used either in the database world or specifically in Postgres world. Examples of words you could find in that dictionary :
- cluster
- vacuum
- WAL
- query
Tags
- Documentation/ Training
- Databases
Categories
Documentation/ Training
Create a video tutorial explaining how to upgrade a PostgreSQL instance
Task Description
The goal of this task is the use of pg_upgrade (formerly called pg_migrator) to upgrade older version instance to newer version instance which makes instance compatible to the new features and functionalities.
pg-upgrade supports upgrades from 8.4.X and later to the current major release of PostgreSQL, including snapshot and beta releases.
Manual Link: https://www.postgresql.org/docs/current/static/pgupgrade.html
Tags
- Documentation
- Training
- Tutorial
- SQL
- Databases
Categories
Documentation/Training
Create a video tutorial explaining how to backup and restore a PostgreSQL instance (03 Tasks)
Task Description
The purpose of this task is to guide a user when to use which method and why? There are three separate tasks for three different students:
- Backup and restore using SQL Dump
- Backup and restore using File System Level Backup
- Backup and restore using Continuous Archiving and Point-in-Time Recovery
Manual Link: https://www.postgresql.org/docs/9.4/static/backup.html
Tags
- Documentation
- Training
- Tutorial
- SQL
- Databases
Categories
Documentation/Training
Create a video tutorial explaining how to backup and restore a PostgreSQL instance using X tool (11 tasks)
Task Description
The purpose of this task is to guide a user about how to backup and restore using different tools with their pros and cons. Each tool is equal to one task:
- Amanda:
- Bacula:
- Backup and Recovery Manager for PostgreSQL:
- Barman
- Handy Backup:
- Iperius Backup:
https://www.iperiusbackup.com/
- NetVault Backup:
https://www.quest.com/products/netvault-backup/
- pgBackRest:
- PostgreSQL backups:
- Simpana:
- Spectrum Protect:
https://www.ibm.com/us-en/marketplace/data-protection-and-recovery
- Manuals:
https://severalnines.com/blog/top-backup-tools-postgresql
Tags
- Documentation
- Training
- Tutorial
- SQL
- Databases
Categories
Documentation/Training
Compose a cheat sheet for backing up and restoring a PostgreSQL instance using X backup tool (11 tasks)
Task Description
The purpose of this task is to guide a user about how to backup and restore using different tools with their pros and cons. Each tool is equal to one task:
- Amanda:
- Bacula:
- Backup and Recovery Manager for PostgreSQL:
- Barman
- Handy Backup:
- Iperius Backup:
https://www.iperiusbackup.com/
- NetVault Backup:
https://www.quest.com/products/netvault-backup/
- pgBackRest:
- PostgreSQL backups:
- Simpana:
- Spectrum Protect:
https://www.ibm.com/us-en/marketplace/data-protection-and-recovery
- Manuals:
https://severalnines.com/blog/top-backup-tools-postgresql
Tags
- Documentation
- Training
- Tutorial
- SQL
- Databases
Categories
Documentation/Training
Compose cheat sheets for common tools/operations in PostgreSQL
Task Description
Compose various cheat sheets for common tools/operations in PostgreSQL like Julia Evans did for Linux commands (https://jvns.ca/blog/2017/12/27/a-perf-cheat-sheet/).
- Installing
- Managing clusters
- Basic settings
- Controlling a PostgreSQL server(start, stop, restart...)
- Security checks
- Performances checks
- Upgrading
- psql tool
- pg_dump tool
- pg_restore tool
Tags
- Documentation
- Training
- Tutorial
- SQL
- Databases
Categories
Documentation/Training
Upgrade pg_backrest tutorial with Postgres 11
Task Description
The pgbackrest tutorial was written for postgres 9.4 (https://pgbackrest.org/user-guide.html). Maybe it's time to upgrade it to postgres 11.
Step needed:
- Understand the user guide
- Test it with a postgres 11 version
- Upgrade the tutorial for postgres 11
Tags
- Documentation
- Training
- Tutorial
- SQL
- Databases
Categories
Documentation/Training
Improve SEO(Search Engine Optimization) fro postgresql.org page
Task Description
Search results for PostgreSQL in search engines (and most of all on Google) are not the best (and particularly, documentation where you can't find the current version first). We need someone to look at how to imporve that visibility.
Tags
- Documentation
- Website
- SEO
Categories
Documentation/Training
Developing an interview system
Task Description
PostgreSQL Conference Europe conducts interviews with speakers, ahead of the conference (mainly pgconf.eu and fosdempgday.org). The interviews are handled manually.
The task is to fork the fork the pgeu-website and pgconfeu-website repository and implement an interview system into the existing code base.
The following features are desired:
- Switch on/off interviews in the main conference configuration
- Database table which builds the template for proposed questions
- Speakers see an interview option in their profile
- Upon entering the interview, the template questions are copied as actual questions, but can me modified/extended/deleted
- Answers can be composed in Markdown
- Interviews must be approved (and not changed afterwards) by the conference team
- Interviews show up in public speaker profiles
- Interviews show up in talks for the speaker
Tags
- Python
- Website
- SQL
Categories
Code
Document the patch submitting process
Task Description
PostgreSQL development revolves around CommitFest periods, but the process of submitting patches is tedious.
Your task is to review the documented steps for submitting and reviewing a patch, and expand the documentation with useful details and links.
More information about patch submission and review: https://wiki.postgresql.org/wiki/Reviewing_a_Patch
Tags
- Code
- Review
- Patch
Categories
Code Quality Assurance
Document the Extension development process
Task Description
PostgreSQL Database is known to be very extensible. Currently the Extension documentation is sparse:
https://www.postgresql.org/docs/devel/static/external-extensions.html
The task is to extend this page with more information about developing extensions, add useful resources, and pointers to the Extension Network (PGXN).
Tags
- Website
Categories
Quality Assurance