Ryan Lambert: PgDD extension moves to Pgx

Our data dictionary extension, PgDD,
has been re-written using the pgx framework in Rust!
At this time I have tagged 0.4.0.rc3 and just need to do a bit more testing before
the official 0.4.0 release.
While I am excited for the news for PgDD, what is more exciting is the
pgx framework and the ease it brings to developing Postgres extensions!
Getting started with pgx is straightforward and using cargo pgx run makes it
simple to build your extension against multiple versions of Postgres.

This post outlines how I came to the decision to use pgx for Postgres extension development.

Progression of PgDD

Before now, PgDD was a raw SQL extension, with that version being an evolution from prior iterations.
Shortly after I converted PgDD to a raw SQL extension I wanted it to do more,
specifically related to supporting newer features such as
generated columns
native partitioning.
Supporting new features in new versions of Postgres is a good idea, but I couldn’t
drop support for older versions at that time either.
Using generated columns as an example, the feature was added in Postgres 12 and
came along with an update to the pg_catalog.pg_attribute system
catalog. In Pg12 and newer, pg_attribute
has a column named attgenerated while earlier versions of Postgres do not have
that column.