Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jViXf-0005Al-FN for pgsql-hackers@arkaria.postgresql.org; Mon, 04 May 2020 21:22:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jViXc-0008M0-EB for pgsql-hackers@arkaria.postgresql.org; Mon, 04 May 2020 21:22:20 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jViXc-0008Lt-7J for pgsql-hackers@lists.postgresql.org; Mon, 04 May 2020 21:22:20 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jViXT-0004M3-QP for pgsql-hackers@lists.postgresql.org; Mon, 04 May 2020 21:22:18 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.4/8.14.4) with ESMTP id 044LM1tq000752; Mon, 4 May 2020 17:22:01 -0400 From: Tom Lane To: "Jonathan S. Katz" cc: Peter Eisentraut , Bruce Momjian , Alvaro Herrera , Robert Haas , Steven Pousty , Pavel Stehule , Isaac Morland , Pierre Giraud , PostgreSQL Developers Subject: Re: Poll: are people okay with function/operator table redesign? In-reply-to: References: <20200423174343.GA16996@alvherre.pgsql> <19233.1587665407@sss.pgh.pa.us> <5561.1587922854@sss.pgh.pa.us> <13e5e408-bc59-e8ca-44f3-28a981b4fc7d@postgresql.org> <11211.1587951842@sss.pgh.pa.us> <58de9544-be5b-f325-b5cc-cce4e2dda7d9@postgresql.org> <5651.1587991781@sss.pgh.pa.us> <30469.1588087170@sss.pgh.pa.us> <8682.1588202983@sss.pgh.pa.us> <4894cde4-148d-f0cc-d6d8-182a46f13e1b@postgresql.org> <06f6b32d-a4cc-3723-5bc1-00fa674df961@postgresql.org> <11106.1588205727@sss.pgh.pa.us> <1c5ca197-f7f2-0300-46ce-4652c7f81d48@postgresql.org> <18310.1588214299@sss.pgh.pa.us> <20585.1588217180@sss.pgh.pa.us> Comments: In-reply-to "Jonathan S. Katz" message dated "Thu, 30 Apr 2020 00:12:48 -0400" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <750.1588627321.1@sss.pgh.pa.us> Content-Transfer-Encoding: quoted-printable Date: Mon, 04 May 2020 17:22:01 -0400 Message-ID: <751.1588627321@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk I've now completed updating chapter 9 for the new layout, and the results are visible at = https://www.postgresql.org/docs/devel/functions.html There is more to do --- for instance, various contrib modules have function/operator tables that should be synced with this design. But this seemed like a good place to pause and reflect. After working through the whole chapter, the only aspect of the new markup that really doesn't seem to work so well is the use of for function result types and example results. While I don't think that that's broken in concept, DocBook has restrictions on the contents of that are problematic: * It won't let you put any verbatim-layout environment, such as , inside . This is an issue for examples for set-returning functions in particular. I've done those like this: regexp_matches('foobarbequebaz', 'ba.', 'g') {bar} {baz} (2 rows in result) where the empty environment is just serving to generate a right arrow. It looks all right, but it's hardly semantically-based markup. * is also quite sticky about inserting other sorts of font-changing environments inside it. As an example, it'll let you include but not , which seems pretty weird to me. This is problematic in some places where it's desirable to have text rather than just a type name, for example stddev ( numeric_type ) double precision for real or double precision, otherwise numeric Now I could have done this example by spelling out all six varieties of stddev() separately, and maybe I should've, but it seemed overly bulky that way. So again is just generating the right arrow. * After experimenting with a few different ways to handle functions with multiple OUT parameters, I settled on doing it like this: pg_partition_tree ( regclass ) setof record ( relid regclass, parentrelid regclass, isleaf boolean, level integer ) This looks nice and I think it's much more intelligible than other things I tried --- in particular, including the OUT parameters in the function signature seems to me to be mostly confusing. But, once again, it's abusing the concept that contains the result type. Ideally the output-column list would be inside the environment, but DocBook won't allow that because of the tags. So at this point I'm tempted to abandon and go back to using a custom entity to generate the right arrow, so that the markup would just look like, say, stddev ( numeric_type ) &returns; double precision for real or double precision, otherwise numeric Does anyone have a preference on that, or a better alternative? regards, tom lane