Sorry about that; I do know to do it properly and usually get it right. GMail doesn’t seem to have an option (that I can find) to leave no space at the top and put my cursor at the bottom; it nudges pretty firmly in the direction of top-posting. Thanks for the reminder.
I don't think printing a few first rows is a good idea - usually there is nothing interesting (same is PL/Perl, PL/Python, ...)
If the proposed feature can be generic, then this information should be stored somewhere in pg_language. Or we can redesign usage of prosrc and probin columns - but this can be a much more massive change.
I’m looking for a quick win. So I think that means either drop the source column entirely, or show single-line source values only and nothing or a placeholder for anything that is more than one line, unless somebody comes up with another suggestion. Originally I was thinking just to remove entirely, but I’ve seen a couple of comments suggesting that people would find it unfortunate if the source weren’t shown for internal/C functions, so now I’m leaning towards showing single-line values only.
I agree that showing the first line or couple of lines isn't likely to be very useful. The way I format my functions, the first line is always blank anyway: I write the bodies like this:
$$
BEGIN
…
END;
$$;
Even if somebody uses a different style, the first line is probably just "BEGIN" or something equally formulaic.
This is only about Internal and C, isn't it? Isn't the oid of these static, and identified by INTERNALlanguageId and ClanguageId respectively? So we could just have the query show the prosrc column if the language oid is one of those two, and otherwise show "Please use \sf to view the source"?