[postgis-users] Recursive query - ERROR: invalid memory alloc request size 1073741824

Imre Samu pella.samu at gmail.com
Mon May 9 12:01:37 PDT 2022


> encountered more than 2 answers/outputs.
> It may get confused and cannot finish.

You can find a very good  SQL "graph" tutorial/basics - with examples.
https://docs.yugabyte.com/preview/api/ysql/the-sql-language/with-clause/traversing-general-graphs/

So you have to decide - what type of graph you have
- Undirected cyclic graph
- Directed cyclic graph
- Directed acyclic graph
- Rooted tree  ( a specialization of the directed acyclic graph. )

If you know the "type of your graph network"  ( and the name of your
problem )  Then it will be easier to find an algorithm.
You can ask your DB team - or You can search the internet.

But without minimal example data - not so easy to help you.
IMHO: Your link ["Network Walking in PostGIS"(2010)] is a very simple
"Rooted tree" example.

Regards,
 Imre

Shaozhong SHI <shishaozhong at gmail.com> ezt írta (időpont: 2022. máj. 8., V,
22:10):

> Hi, Imre,
>
> There is a possibility that the Walk the Network (Network Walking in
> PostGIS · Paul Ramsey (cleverelephant.ca)
> <http://blog.cleverelephant.ca/2010/07/network-walking-in-postgis.html?m=1&msclkid=5cf8409ecf0a11ecbbe2896397a25c2b>)
>  encountered more than 2 answers/outputs.
>
> It may get confused and cannot finish.
>
> Can we build something in the script to report these and should there be
> an exception, allow it to complete the task?
>
> Regards,
>
> David
>
> On Sun, 8 May 2022 at 00:59, Imre Samu <pella.samu at gmail.com> wrote:
>
>> Hi David,
>> > There is a loop of recursive query.  It runs at a point where it stops.
>> >Can anyone provide pointers how to solve this problem or work around?
>>
>> Please share "this" recursive query;
>>
>> My guess:  Probably you have a "forever/endless loop" in your data; *so
>> you have to LIMIT the recursive part ;*
>>
>> related links :
>> 1.)  with limiting "depth"   ( where depth < 1000 )
>> "Prevent infinite loop in recursive query in Postgresql"
>>
>> https://stackoverflow.com/questions/51025607/prevent-infinite-loop-in-recursive-query-in-postgresql
>> 2.)  with LIMITING clause
>> https://www.cybertec-postgresql.com/en/recursive-queries-postgresql/
>> *"This example also demonstrates how an endless loop can be avoided with
>> a LIMIT clause on the parent query."*
>>
>> Regards,
>>   Imre
>>
>> Shaozhong SHI <shishaozhong at gmail.com> ezt írta (időpont: 2022. máj. 7.,
>> Szo, 15:23):
>>
>>> There is a loop of recursive query.  It runs at a point where it stops.
>>>
>>> This error turned up.- ERROR:  invalid memory alloc request size
>>> 1073741824
>>>
>>> Can anyone provide pointers how to solve this problem or work around?
>>>
>>> Regards,
>>>
>>> David
>>> _______________________________________________
>>> postgis-users mailing list
>>> postgis-users at lists.osgeo.org
>>> https://lists.osgeo.org/mailman/listinfo/postgis-users
>>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/postgis-users
>>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20220509/56c1ffc6/attachment.htm>


More information about the postgis-users mailing list