[pgrouting-users] Error in "dijkstra_sp_delta_directed" line 83

Mathias Villeger mathias.villeger at gmail.com
Thu Jun 21 03:00:39 PDT 2012


See https://github.com/pgRouting/pgrouting/issues/60

Thanks
Bye

Mathias.


2012/6/21 Daniel Kastl <daniel at georepublic.de>

> Hi Mathias,
>
> Thanks for reporting this!
> It's weird that source/target should be a decimal number.
> If you could create a ticket, that would be nice. Otherwise issues easily
> get lost in the mailing list archive.
>
> Daniel
>
>
> On Thu, Jun 21, 2012 at 11:25 AM, Mathias Villeger <
> mathias.villeger at gmail.com> wrote:
>
>> Hi Daniel,
>>
>> I added type casts to request parameters but the error persists :
>> SELECT gid, the_geom FROM dijkstra_sp_delta( CAST( 'routes' AS varchar ),
>> CAST( :source AS int4 ), CAST( :target AS int4 ), CAST( :delta AS float8 )
>> );
>>
>> I solved it changing this bloc of function dijkstra_sp_delta_directed :
>>
>> *FOR rec IN EXECUTE 'SELECT CASE WHEN '||source_x||'<'||target_x||
>>            ' THEN '||source_x||' ELSE '||target_x||
>>            ' END as ll_x, CASE WHEN '||source_x||'>'||target_x||
>>            ' THEN '||source_x||' ELSE '||target_x||' END as ur_x'
>>         LOOP
>> END LOOP;
>>
>> ll_x := rec.ll_x;
>> ur_x := rec.ur_x;
>>
>> FOR rec IN EXECUTE 'SELECT CASE WHEN '||source_y||'<'||
>>             target_y||' THEN '||source_y||' ELSE '||
>>             target_y||' END as ll_y, CASE WHEN '||
>>             source_y||'>'||target_y||' THEN '||
>>             source_y||' ELSE '||target_y||' END as ur_y'
>>         LOOP
>> END LOOP;*
>>
>> with bloc :
>>
>>
>> *    # Cast in Float to prevent plan error in PostgreSQL
>>     FOR rec IN EXECUTE 'SELECT CASE WHEN CAST('||source_x||' as float8)<
>> CAST('||target_x||
>>            ' as float8) THEN CAST('||source_x||' as float8) ELSE
>> CAST('||target_x||
>>            ' as float8) END as ll_x, CASE WHEN CAST('||source_x||' as
>> float8)>CAST('||target_x||
>>            '  as float8) THEN CAST('||source_x||' as float8) ELSE
>> CAST('||target_x||' as float8) END as ur_x'
>>         LOOP
>>     END LOOP;
>>
>>     ll_x := rec.ll_x;
>>     ur_x := rec.ur_x;
>>
>>         # Cast in Float to prevent plan error in PostgreSQL
>>     FOR rec IN EXECUTE 'SELECT CASE WHEN CAST('||source_y||' as
>> float8)<CAST('||
>>             target_y||' as float8) THEN CAST('||source_y||' as float8)
>> ELSE CAST('||
>>             target_y||' as float8) END as ll_y, CASE WHEN CAST('||
>>             source_y||' as float8)>CAST('||target_y||' as float8) THEN
>> CAST('||
>>             source_y||' as float8) ELSE CAST('||target_y||' as float8)
>> END as ur_y'
>>         LOOP
>>     END LOOP;*
>>
>> The error occured when source_x has not any decimal.
>> Should I create an issue on issue tracker?
>>
>> Mathias.
>>
>>
>>
>> 2012/6/21 Daniel Kastl <daniel at georepublic.de>
>>
>>> Hi Mathias,
>>>
>>> Could you post the query?
>>> The pgRouting function you're using is this one:
>>>
>>> https://github.com/pgRouting/pgrouting/blob/master/core/sql/routing_core_wrappers.sql#L594
>>>
>>> Can you check if the expected parameters have the right data types?
>>> If the data type is not correct it sometimes is enough to type cast.
>>>
>>> Daniel
>>>
>>>
>>>  On Thu, Jun 21, 2012 at 9:57 AM, Mathias Villeger <
>>> mathias.villeger at gmail.com> wrote:
>>>
>>>>  Hello,
>>>>
>>>> I get the following error using the dijkstra_sp_delta function :
>>>>
>>>> type of parameter 33 (integer) does not match that when preparing the
>>>> plan (numeric)
>>>>   Où : PL/pgSQL function "dijkstra_sp_delta_directed" line 83 at
>>>> assignment
>>>> PL/pgSQL function "dijkstra_sp_delta" line 19 at FOR over EXECUTE
>>>> statement
>>>>
>>>> I didn't find anything about that.
>>>> I'm using postgis with a java application. Calls are done with
>>>> Hibernate's named queries, but I don't think that the use of Hibernate is
>>>> the cause of this error.
>>>> The error occurs randomly : A failing request can work at its next call.
>>>>
>>>> Versions :
>>>> Postgres 9.1
>>>> Postgis 1.5
>>>> Pgrouting 1.0.5
>>>>
>>>> Any idea about this?
>>>>
>>>> Regards,
>>>>
>>>> Mathias.
>>>> _______________________________________________
>>>> Pgrouting-users mailing list
>>>> Pgrouting-users at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>>>
>>>>
>>>
>>>
>>> --
>>> Georepublic UG & Georepublic Japan
>>> eMail: daniel.kastl at georepublic.de
>>> Web: http://georepublic.de
>>>
>>> _______________________________________________
>>> Pgrouting-users mailing list
>>> Pgrouting-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>>
>>>
>>
>> _______________________________________________
>> Pgrouting-users mailing list
>> Pgrouting-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>
>>
>
>
> --
> Georepublic UG & Georepublic Japan
> eMail: daniel.kastl at georepublic.de
> Web: http://georepublic.de
>
> _______________________________________________
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20120621/c6f651f1/attachment.html>


More information about the Pgrouting-users mailing list