Обсуждение: using raise info to display array element

Поиск
Список
Период
Сортировка

using raise info to display array element

От
Kiryl Mauryshchau
Дата:
I am trying to print values of an array one by one, but it doesn't work.

For example, if i want to print entire array at once, it does work:

CREATE OR REPLACE FUNCTION "public"."test_func" () RETURNS integer AS
$body$
declare
  i int;
  v_arr integer[] = '{0, 1}';  
begin

  v_arr[1] := 5;
  v_arr[2] := 7;
 
  raise info 'entire array: %', v_arr;
 
  return 0;

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

But then if I try this:

CREATE OR REPLACE FUNCTION "public"."test_func_new" () RETURNS integer AS
$body$
declare
  i int;
  v_arr integer[] = '{0, 1}';  
begin

  v_arr[1] := 5;
  v_arr[2] := 7;
 
  raise info '1st element: %', v_arr[1];
 
  return 0;

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

.. and it doesn't compile.

Can someone help me? Thanks!

--
Regards,
Kiryl Mauryshchau

Re: using raise info to display array element

От
Pavel Stehule
Дата:
Hello

It working on my 9.1.

postgres=# select "public"."test_func_new" ();
INFO:  1st element: 5
 test_func_new
───────────────
             0
(1 row)

can you send more info about your environment?

Regards

Pavel Stehule


2011/8/5 Kiryl Mauryshchau <kirylm@gmail.com>:
> I am trying to print values of an array one by one, but it doesn't work.
>
> For example, if i want to print entire array at once, it does work:
>
> CREATE OR REPLACE FUNCTION "public"."test_func" () RETURNS integer AS
> $body$
> declare
>   i int;
>   v_arr integer[] = '{0, 1}';
> begin
>
>   v_arr[1] := 5;
>   v_arr[2] := 7;
>
>   raise info 'entire array: %', v_arr;
>
>   return 0;
>
> end
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
> But then if I try this:
>
> CREATE OR REPLACE FUNCTION "public"."test_func_new" () RETURNS integer AS
> $body$
> declare
>   i int;
>   v_arr integer[] = '{0, 1}';
> begin
>
>   v_arr[1] := 5;
>   v_arr[2] := 7;
>
>   raise info '1st element: %', v_arr[1];
>
>   return 0;
>
> end
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
> .. and it doesn't compile.
>
> Can someone help me? Thanks!
>
> --
> Regards,
> Kiryl Mauryshchau
>