> 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
----------
Tried that and it did not work.
cast(sg.data + g.data AS numeric(7,3)) but the same error is produced, even if i cast the g.data in the non-recursive
section.Same issue if i cast each column individually.
Karl