On Mon, Mar 15, 2004 at 11:38:05 -0700,
Shilong Stanley Yao <yao@noao.edu> wrote:
> Dear All,
> I am trying to write a function in Postgresql, which takes 2 floats and
> returns a box. But seems the nested single-quote in the AS clause
> prevent $1 and $2 from being expanded. Besides writing a C function
> instead of a SQL one, is there any way to solve this problem?
I believe you want to concatenate $1 and $2 with the constants parts
of the string rather than to embed them in the string.
The cube type in contrib/cube already has functions for making a cube
from float8 numbers without converting to text inbetween. Depending
on what you want this might be another approach for you.
>
> Thanks a lot.
> -Stan
>
> CREATE OR REPLACE FUNCTION func_radec_to_box(float, float) RETURNS box
> AS 'SELECT box \'(($1, $2), (1.3, 1.4))\''
> LANGUAGE 'sql'
> WITH (ISCACHABLE);
>
>
> Error message:
> psql:func_radec_to_box.sql:4: ERROR: Bad box external representation
> '(($1, $2), (1.3, 1.4))'
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html