Re: Attach comments to functions' parameters and return value - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: Attach comments to functions' parameters and return value
Date
Msg-id 55F70291.7000403@BlueTreble.com
Whole thread Raw
In response to Attach comments to functions' parameters and return value  ("Charles Clavadetscher" <clavadetscher@swisspug.org>)
Responses Re: Attach comments to functions' parameters and return value  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Re: Attach comments to functions' parameters and return value  (Charles Clavadetscher <clavadetscher@swisspug.org>)
List pgsql-hackers
On 9/14/15 8:59 AM, Charles Clavadetscher wrote:
> Hello
>
> In PostgreSQL it is possible to attach comments to almost everything. This
> made it possible for us to integrate the wiki that we use for our technical
> documentation directly with the database using the MediaWiki [1] extensions
> ExternalData [2] and MagicNoCache [3]. The result is a documentation on
> tables and related objects (indexes, triggers, etc.) and views that always
> shows the current state, i.e. any DDL change or any comment attached to an
> object is shown in the wiki immediately (or on refresh if the change was
> done after the reader landed on the page).

Neat! I hope you'll open source that. :)

> In order to optimize the query, we wrote a small set of sql functions that
> generate wiki markup for the objects queried. The idea behind is that this
> is much quicker in PostgreSQL than on a web server hosting MediaWiki,
> besides a better control of the privileges for the user retrieving data.

And that! :)

> So far we can document in such a way tables and views. I started to create
> something similar for functions until I noticed that there is no way to
> attach comments on functions' parameters and return value. My first idea was
> to add this information in the function description, but this is quite an
> ugly solution.
>
> My next workaround is to simulate the behaviour of a COMMENT ON FUNCTION
> PARAMETER/RETURNVALUE command inserting comments on these directly in
> pg_description. For that I used a convention similar to the one used for
> table attributes and defined following pg_description.objsubid:
>
>    -1 = return value
>     0 = comment on the function itself (this already exists)
> 1..n = comment on parameter at position n

At first glance, seems reasonable.

>    - Add function to get the position of the parameter, e.g.
> LookupFuncNamePos(function_name, param_name) or a function to create the
> whole ObjectAddress e.g. .

Something similar might exist already. TBH, to start with, I would only 
support position number. You'll have to support that case anyway, and it 
should be simpler.

> To long time PostgreSQL developers this may look straightforward. For the
> moment I am not even sure if that is correct and if there are other places
> that would need additions, apart from the obvious display in psql.

I suspect that changes to support this should be pretty localized. I 
suggest you look at other recent patches that have added COMMENT 
functionality to see what they did.

BTW, I'm also interested in this but I'm not sure when I'd have time to 
work on it.
-- 
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: WIP: Make timestamptz_out less slow.
Next
From: Pavel Stehule
Date:
Subject: Re: On-demand running query plans using auto_explain and signals