PostgreSQL documentation is, generally speaking, great. But it isn't the easiest thing to search in. Over the years I memorized urls to certain docs, but there is a limit to it.
What's more, there are certain inconsistencies. For example – most pages that describe program have name that starts with app-. But not all. Some programs have names that start with pg_, and some don't have this _ thing. Their docs usually get rid of _ in file name, but, again, not always, sometimes it's changed to –.
I've been aware of all these things, and even tried to look for a way to fix it in docs, but never could get around to learn docbook.
So, figured I can provide a tool that will search the way I think it should…
This is how pgdoc.link came to be.
It contains a database of keywords extracted from official PostgreSQL docs.
To built it I scanned docs for all versions from 9.0 to 17, and extracted keywords:
- names of config parameters
- names of apps, both client, and server
- names of contrib modules
- function names
- all SQL commands
- names of system tables/views
For each of such name I extracted link to its page, or, in case of functions, to specific place on specific page.
With this in place, I made simplistic site, where you can put in keyword, and be redirected to appropriate page immediately.
You can there also prefix keyword with version number (separated by ‘/'), or put it at the end, with ‘@' separator.
Important, for me, part of it, is that I don't even have to go to the pgdoc.link site – I can just build the url by hand in address bar in browser, and get what I want, for example:
- https://pgdoc.link/max_connections – to get description of max_connections config param from newest Pg
- https://pgdoc.link/15/hstore – to get page for hstore contrib extension, as it was in PostgreSQL 15
- https://pgdoc.link/jsonb_build_object@16 – to get description of jsonb_build_object function, as it was in PostgreSQL 16
To make it more usable, if you'll try to look for something that doesn't exist, pgdoc.link will try to find it using given string as prefix. So I can go to https://pgdoc.link/jsonb_build_o to get doc for jsonb_build_object in newest Pg.
You can also use ‘*' character for wildcard matching. For example: https://pgdoc.link/*try*xact*shared will give me docs for pg_try_advisory_xact_lock_shared function.
If any search would return more than one result, you will be given list of matching keywords and information what type of keyword it is (app, config, …), for example: https://pgdoc.link/*buffer* shows 15 matches.
And finally, if it can't be found – you will get redirected to original PostgreSQL Site Search.
Hope you will find it useful 🙂
Hi depesz,
A big THANK YOU for this useful tool.
Hi,
The site is not working yet for me.
@Said:
that would help if you could tell me what url you visited, when, form what IP, and what was shown to you.
I checked webserver logs, and i didn’t see any traffic to the site from the ip that you wrote your comment from.
@depesz
Right.
The link I visited is: https://pgdoc.link/
IP: 173.177.124.120
What firefox showed me is the following error message: “connection failed” or the NS_ERROR_CONNECTION_REFUSED.
@Said:
Checked, the site is working, and https://downforeveryoneorjustme.com/pgdoc.link seems to confirm that it is up.
Not sure what could be the problem. Maybe dns issue?
But it seems to work from 3 major free dns servers:
@depesz,
It was a dns issue as you said. I think my dns provider is blocking new domain < 30 days.
I've got working it now, thanks.