Received: from localhost (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id A273D63630F for ; Sun, 5 Apr 2009 17:21:21 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 02775-07 for ; Sun, 5 Apr 2009 17:21:17 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from proxy.hddesign.com (cluster.hddesign.com [216.165.191.36]) by mail.postgresql.org (Postfix) with ESMTP id 8DEAF6362B6 for ; Sun, 5 Apr 2009 17:21:17 -0300 (ADT) Received: from [192.168.0.3] (h75-100-71-30.vrnawi.dsl.dynamic.tds.net [75.100.71.30]) (authenticated bits=0) by proxy.hddesign.com (8.12.9p2/8.12.9) with ESMTP id n35KKYD8064970 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sun, 5 Apr 2009 15:20:35 -0500 (CDT) (envelope-from dn@hddesign.com) Message-ID: <49D91288.5000904@hddesign.com> Date: Sun, 05 Apr 2009 15:20:24 -0500 From: David Niergarth User-Agent: Mozilla-Thunderbird 2.0.0.19 (X11/20090103) MIME-Version: 1.0 To: pgsql-docs@postgresql.org Subject: Re: SQL formatting in docs References: <49D8F9CB.4030700@hddesign.com> In-Reply-To: <49D8F9CB.4030700@hddesign.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-hddesign-MailScanner-Information: Please contact the ISP for more information X-hddesign-MailScanner: Found to be clean X-MailScanner-From: dn@hddesign.com X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200904/4 X-Sequence-Number: 5092 David Niergarth wrote: > Hopefully not a naive question... How are all the queries in the > postgres docs formatted? They're all very consistent and nice pretty > printed, especially complex queries. How can I do the same? As an non-trivial example of what I mean, here's a query from Chapter 36: The Rule System. Is there an automated way to format/prettyprint queries like this? SELECT shoe_ready.shoename, shoe_ready.sh_avail, shoe_ready.sl_name, shoe_ready.sl_avail, shoe_ready.total_avail FROM (SELECT rsh.shoename, rsh.sh_avail, rsl.sl_name, rsl.sl_avail, min(rsh.sh_avail, rsl.sl_avail) AS total_avail FROM (SELECT sh.shoename, sh.sh_avail, sh.slcolor, sh.slminlen, sh.slminlen * un.un_fact AS slminlen_cm, sh.slmaxlen, sh.slmaxlen * un.un_fact AS slmaxlen_cm, sh.slunit FROM shoe_data sh, unit un WHERE sh.slunit = un.un_name) rsh, (SELECT s.sl_name, s.sl_avail, s.sl_color, s.sl_len, s.sl_unit, s.sl_len * u.un_fact AS sl_len_cm FROM shoelace_data s, unit u WHERE s.sl_unit = u.un_name) rsl WHERE rsl.sl_color = rsh.slcolor AND rsl.sl_len_cm >= rsh.slminlen_cm AND rsl.sl_len_cm <= rsh.slmaxlen_cm) shoe_ready WHERE shoe_ready.total_avail > 2; Thanks, --David