GCI 2018

From PostgreSQL wiki
Jump to navigationJump to search

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:

http://www.amanda.org/

  • Bacula:

https://www.bacula.org/

  • Backup and Recovery Manager for PostgreSQL:

https://www.2ndquadrant.com/

  • Barman

https://www.pgbarman.org/

  • Handy Backup:

https://www.handybackup.net/

  • Iperius Backup:

https://www.iperiusbackup.com/

  • NetVault Backup:

https://www.quest.com/products/netvault-backup/

  • pgBackRest:

https://pgbackrest.org/

  • PostgreSQL backups:

https://www.pgbarman.org/

  • Simpana:

https://www.commvault.com/

  • 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:

http://www.amanda.org/

  • Bacula:

https://www.bacula.org/

  • Backup and Recovery Manager for PostgreSQL:

https://www.2ndquadrant.com/

  • Barman

https://www.pgbarman.org/

  • Handy Backup:

https://www.handybackup.net/

  • Iperius Backup:

https://www.iperiusbackup.com/

  • NetVault Backup:

https://www.quest.com/products/netvault-backup/

  • pgBackRest:

https://pgbackrest.org/

  • PostgreSQL backups:

https://www.pgbarman.org/

  • Simpana:

https://www.commvault.com/

  • 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