🐘 PostgreSQL EoLs as a table ⏳

adriens - Jan 27 '23 - - Dev Community

🐘 About

When you want to know about PostgreSQL End of Life (EoLs), you usually start with a Google Search :

Image description

📅 PostgreSQL Versioning Policy

So you get to the PostgreSQL Versioning Policy :

Image description

☝️ ... but you can't really interact/play with the underlying data 😓

endoflife.date

If you go to the dedicated endoflife.date page

Image description

💡... things are getting much much more interesting... especially when you notice the api option 🤔

🎯 What ya gonna do

In this post, you'll see how to load PostgresSQL EoLs data into a regular table, (almost) only from psql commands.

🧰 Tools

All you need here is:

  • 🐘 A PostgreSQL instance
  • ⛏️ httpie (or curl, ... or wget)
  • 🪛 jq
  • ⌨️ Any (decent) terminal

🌈 Teaser 🐱

At the end of this post, you'll be able to get PostgreSQL EoLs this way:

🎬 Demo

🔖 Resources

GitHub logo adriens / endoflife.date-nested

A collection of resources to load Product EoL in itself

About

endoflife.date-nested is a collection of resources to load Product EoL in itself, thanks to endoflife.date.

You can have a global overview by having a loog at the dedicated endoflife.date Series' Articles

🤓 Why ?

  • For fun
  • To learn new databases (and varous ways of storing data)
  • To learn efficient patterns around API data loading
  • To manage technical debt in various fun (and hopefuly useful) ways

🛤️ Roadmap

📑 More about endoflife.date




🎫 Related contents

🐘 Please add a boolean "Supported" flag for PostgreSQL ✔️ #2380

About

Is your feature request related to a problem? Please describe.

Actually, /api/postgresql.json :

[
  {
    "cycle": "15",
    "eol": "2027-11-11",
    "latest": "15.1",
    "latestReleaseDate": "2022-11-07",
    "releaseDate": "2022-10-10",
    "lts": false
  },
  {
    "cycle": "14",
    "eol": "2026-09-30",
    "latest": "14.6",
    "latestReleaseDate": "2022-11-07",
    "releaseDate": "2021-09-27",
    "lts": false
  },
  {
    "cycle": "13",
    "eol": "2025-11-13",
    "latest": "13.9",
    "latestReleaseDate": "2022-11-07",
    "releaseDate": "2020-09-21",
    "lts": false
  },
  {
    "cycle": "12",
    "eol": "2024-11-14",
    "latest": "12.13",
    "latestReleaseDate": "2022-11-07",
    "releaseDate": "2019-09-30",
    "lts": false
  },
  {
    "cycle": "11",
    "eol": "2023-11-09",
    "latest": "11.18",
    "latestReleaseDate": "2022-11-07",
    "releaseDate": "2018-10-15",
    "lts": false
  },
  {
    "cycle": "10",
    "eol": "2022-11-10",
    "latest": "10.23",
    "latestReleaseDate": "2022-11-07",
    "releaseDate": "2017-10-02",
    "lts": false
  },
...
]
Enter fullscreen mode Exit fullscreen mode

does not give as much information as the official page, especially the Supported boolean column :

image

💡 The solution you'd like

I would like to get a ready to use boolean attribute that would tell me is the version is supported or not... I mean without any client side computation.

Alternatives you've considered

  • Client side compuation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .