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

Daniel Kastl daniel at georepublic.de
Thu Jun 21 02:35:10 PDT 2012


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20120621/5d279462/attachment-0001.html>


More information about the Pgrouting-users mailing list