#348 — March 25, 2020

Read on the Web

Postgres Weekly

pg_timetable 2.0: The Advanced Postgres Cron-Like Job Scheduler — We only linked to version one a few months ago, but v2 of pg_timetable is here. Why should you care? You can now mark jobs as @reboot to run when pg_timetable restarts or use @every or @after to runs job at intervals.

Pavlo Golub

PGCon 2020 To Be Online, Not in Person — Given developments in the past week, this is perhaps no surprise, but it’ll be interesting to see what they come up with. “Details will soon follow.”

Dan Langille

Free eBook: How to Get a 3x Performance Improvement on Your Postgres Database — Learn our best practices for optimizing Postgres query performance for customers like Atlassian and how to reduce data loaded from disk by 500x.

pganalyze sponsor

PGSync: Sync Postgres Data Between Databases — Fast, aims to provide good security, and you can sync partial tables or groups of tables. The README shows off some interesting examples. Written in Ruby.

Andrew Kane

A Look at Embedded SQL in C for Postgres with ecpg — A quick look at what is generously called a ‘vintage technology’ (i.e. old fashioned) where you write SQL directly inline within, say, a C program and compile it to handle all the database work behind the scenes. I’d never seen this style of programming before, so it’s interesting even if I’ll never use it.

Laurenz Albe

Announcing an APT Package Archive for Postgresapt-archive.postgresql.org is a new official archive of old Postgres packages covering versions back to 8.2.23 and Debian and Ubuntu versions back to around 2010.

Christoph Berg

Troubleshoot Postgres Performance with Datadog — Collect Postgres metrics and correlate them with related traces and logs for fast troubleshooting. Optimize performance with Datadog.

Datadog sponsor

The Big Difference Between HAVING and WHERE Clauses — This is from the docs, but I saw it doing the rounds as an article that someone merely copied and pasted elsewhere (!) and found it useful nonetheless. In short, WHERE selects input rows before groups and aggregates are computed whereas HAVING selects group rows after groups and aggregates are computed.

PostgreSQL Documentation

Building and Testing a REST API in Go(lang) with Gorilla Mux and Postgres — A thorough walkthrough of how to build a simple and well-tested REST API backed by a Postgres database using Gorilla/Mux, a popular Go request router.

Kulshekhar Kabra

🗓 Upcoming Events

Note: Due to the disruption caused by the COVID-19 outbreak, it seems very likely most in-person events in the near future will be postponed or cancelled, so please check the status of any events you are considering attending or have already booked.

  • Swiss PGDay 2020 (June 18-19 in Switzerland) — This event has now been cancelled with a new date in 2021 to follow.
  • Postgres Vision 2020 (June 22-24) — This event was due to be held in Boston, MA but will now be a virtual event. We'll update you on signing up to this later on.
  • Postgres Ibiza 2020 (June 25-26 in Ibiza, Spain) — Seems like this two day conference on the island of Ibiza is hoping to go ahead at time of writing, but I'd keep checking in.
  • PGCon 2020 to now be an online event. More details to follow on this one too.

ℹ️ If you are running any virtual events such as webinars, Twitch streams, and similar online get-togethers please do let us know so we can feature them here.