Re: Obtain boolean value of expression in PLPGSQL

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Obtain boolean value of expression in PLPGSQL
Дата
Msg-id Pine.LNX.4.44.0311041504050.12294-100000@kix.fsv.cvut.cz
обсуждение исходный текст
Ответ на Obtain boolean value of expression in PLPGSQL  (Max Speransky <mx@lucky.net>)
Список pgsql-general
Hello

You are on wrong way.

Try like

DECLARE
  b RECORD;
  s TEXT;
  op TEXT;
BEGIN op := ''='';
  s := ''SELECT 3 ''|| op || ''|| $1 || ''AS b'';
  FOR b IN EXECUTE s LOOP
    RETURN b.b;
  END LOOP;
END;

Regards
Pavel


On Tue, 4 Nov 2003, Max Speransky wrote:

> Hello
>
> My task is to validate expression and get value of it in boolean variable.
> I try to do following:
> CREATE OR REPLACE FUNCTION get_value(integer) RETURNS boolean AS'
> DECLARE
>         Ret     boolean;
>         Op      TEXT = ''='';
> BEGIN
>
>         Ret := 3 || Op || $1;
>         RETURN Ret;
> END;
> ' language 'plpgsql';
>
> when I try to execute this function I get such result:
>
> bill=# select get_value(3);
> WARNING:  Error occurred while executing PL/pgSQL function get_value
> WARNING:  line 6 at assignment
> ERROR:  Bad boolean external representation '3=3'
> bill=#
>
> So, how can I explain that resulting type must be boolean ? Also, I try to
> play with SELECT INTO with same result.
>
>


В списке pgsql-general по дате отправления:

Предыдущее
От: "Edwin Quijada"
Дата:
Сообщение: Problem with Pg_dumpall
Следующее
От: Andrew Sullivan
Дата:
Сообщение: Re: pg7.3.4: pg_atoi: zero-length string