From: | Simon Riggs <simon(dot)riggs(at)enterprisedb(dot)com> |
---|---|
To: | jason(at)banfelder(dot)net, pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Handling of quantity in recursive query example |
Date: | 2022-08-28 11:43:22 |
Message-ID: | CANbhV-Fg9j3LKHTr8PRfSnkWBwtUg1n5Wo0vs43BtGrUyaCB+g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
On Sat, 27 Aug 2022 at 18:04, PG Doc comments form
<noreply(at)postgresql(dot)org> wrote:
>
> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/14/queries-with.html
> Description:
>
> I believe that the second query in section 7.8.2 (Recursive Queries) should
> be modified to properly account for quantities. In the recursive term,
> p.quantity should be multiplied by pr.quantity:
>
> WITH RECURSIVE included_parts(sub_part, part, quantity) AS (
> SELECT sub_part, part, quantity FROM parts WHERE part = 'our_product'
> UNION ALL
> SELECT p.sub_part, p.part, p.quantity * pr.quantity
> FROM included_parts pr, parts p
> WHERE p.part = pr.sub_part
> )
> SELECT sub_part, SUM(quantity) as total_quantity
> FROM included_parts
> GROUP BY sub_part
>
> As currently written, if a car has four wheels, and each wheel has five
> bolts, the whole example returns five bolts for the parts of a car. With the
> proposed change, it will return 20 bolts.
I agree, based on the attached test.
psql -f parts.sql
Existing
sub_part | total_quantity
----------+----------------
wheel | 4
bolt | 5
(2 rows)
Proposed change
sub_part | total_quantity
----------+----------------
wheel | 4
bolt | 20
Doc patch attached.
--
Simon Riggs http://www.EnterpriseDB.com/
Attachment | Content-Type | Size |
---|---|---|
parts.sql | application/octet-stream | 947 bytes |
recursive_correction.v1.patch | application/octet-stream | 533 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | PG Doc comments form | 2022-08-28 13:33:34 | INSERT RETURNING |
Previous Message | Pavel Stehule | 2022-08-28 10:37:15 | Re: Does postgres have Equivalent range C range Type for Built-in SQL range Types |