From: | Alban Hertroys <haramrae(at)gmail(dot)com> |
---|---|
To: | k b <k_b0000(at)yahoo(dot)se> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: cast issue in WITH RECURION |
Date: | 2017-08-04 01:32:53 |
Message-ID: | 72AC9D09-FBE8-49EB-BF17-9C29591ED2FB@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> On 3 Aug 2017, at 20:22, k b <k_b0000(at)yahoo(dot)se> wrote:
>
> when i create a recursive query and try to add the distances i get a message:
> ERROR: recursive query "edges" column 3 has type numeric(7,3) in non-recursive term but type numeric overall.
> My exercise is almost identical to the example in the docs:
> WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS (
> SELECT g.id, g.link, g.data, 1,
> ARRAY[g.id],
> false
> FROM graph g
> UNION ALL
> SELECT g.id, g.link,
> sg.data + g.data, -- altered section, data is numeric(7,3)
> sg.depth + 1,
> path || g.id,
> g.id = ANY(path)
> FROM graph g, search_graph sg
> WHERE g.id = sg.link AND NOT cycle
> )
> SELECT * FROM search_graph;
I believe the solution is rather simple; just cast(sg.data + g.data to numeric(7,3))
Alban Hertroys
--
If you can't see the forest for the trees,
cut the trees and you'll find there is no forest.
From | Date | Subject | |
---|---|---|---|
Next Message | Mark Street | 2017-08-04 02:40:46 | Setting Variables within the PostgreSQL Service Process on AWS Linux |
Previous Message | k b | 2017-08-03 19:19:29 | Re: cast issue in WITH RECURION |