Michael Paquier - PostgreSQL committer

  • Home
  • Manuals
  • Presentations
  • Projects
  • Resume
  • Tags
  • About

The Blackhole Extension

You liked this post or you have a comment? Contact information is available here and sponsoring is here.
31 Oct 2014
Tags: postgres, postgresql, blackhole, pg_plugins

Behind this eye-catching title is an [extension] (https://www.postgresql.org/docs/devel/static/extend-extensions.html) called blackhole that I implemented yesterday, tired of needing to always structure a fresh extension when needing one (well copying one from Postgres contrib/ would be fine as well). Similarly to [blackhole_fdw] (https://bitbucket.org/adunstan/blackhole_fdw/src) that is aimed to be an extension for a foreign-data wrapper, blackhole is an extension wanted as minimalistic as possible that can be used as a base template to develop a Postgres extension in C.

When using it for your own extension, simply copy its code, create a new git branch or whatever, and then replace the keyword blackhole by something you want in the code. Note as well that the following files need to be renamed:

blackhole--1.0.sql
blackhole.c
blackhole.control

Once installed in a vanilla state, this extension does not really do much, as it only contains a C function called blackhole, able to do the following non-fancy thing:

=# \dx+ blackhole
Objects in extension "blackhole"
  Object Description
----------------------
 function blackhole()
(1 row)
=# SELECT blackhole();
 blackhole
-----------
 null
 (1 row)

Yes it simply returns a NULL string.

The code of this template is available [here] (https://github.com/michaelpq/pg_plugins/tree/master/blackhole), or blackhole/ with the rest of a set of PostgreSQL plugins managed in the repository pg_plugins. Hope that’s useful (or not). In case, if you have ideas to improve it, feel free to send a pull request, but let’s keep it as small as possible.

And Happy Halloween!

Search

Social

Github

RSS Feeds

Main

Postgres

Sponsor

Unless otherwise specified, the contents of this website are (C)Copyright Michael Paquier 2010-2025 and are licensed for use under CC BY-NC-ND 4.0.