Search Postgresql Archives

array_append not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry, this is probably a dumb mistake on my part. New to Postgres. Running
8.0 on Linux.

The array_append below is giving me a syntax error, and I have no idea what
I am doing wrong.

Also as a side note is there a straightforward way to get a value from a
dynamic query into a local variable? The loop construct at the end is the
only way I know how...

CREATE OR REPLACE FUNCTION "property"."get_score_type_id_from_url" (p_url
varchar) RETURNS integer AS
$body$
/* returns a score_type_id given a filter url fragment */

declare

v_parsed text[];
v_query_array text[] = '{}';
v_array_index integer = 1;
rec record;
v_value integer;

begin

if (char_length(p_url) = 0 or p_url is null) then
   return 1;
end if;

v_parsed := string_to_array(p_url,'/');

FOR rec IN
SELECT * FROM property.filteritem ORDER BY filter_group_id, sort_order
LOOP

if (rec.item_name = v_parsed[v_array_index]) then
   v_value = rec.item_field_value;
   v_array_index = v_array_index + 1;
else
   v_value = 0;
end if;

array_append(v_query_array,(rec.item_field_name || '=' ||
v_value::text)::text);

END LOOP;

/* todo: doesn't need to be a loop here */
FOR rec IN EXECUTE
'SELECT score_type_id FROM array_to_string(v_query) WHERE ' ||
array_to_string(v_parsed,' AND ')
LOOP

return rec.score_type_id;

END LOOP;

end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
;


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux