Dynamic expression evaluation

Поиск
Список
Период
Сортировка
От Philippe Lang
Тема Dynamic expression evaluation
Дата
Msg-id 6C0CF58A187DA5479245E0830AF84F420AF75F@poweredge.attiksystem.ch
обсуждение исходный текст
Ответы Re: Dynamic expression evaluation  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Hello,

Imagine we have the following kind of table, with two values (a and b), and a varchar (f) representing an expression.

----------------------------------
CREATE TABLE public.test
(
  id serial NOT NULL,
  a int4,
  b int4,
  f varchar(50),
  CONSTRAINT id PRIMARY KEY (id)
) WITHOUT OIDS;

INSERT INTO public.test(a,b,f) VALUES(2,3,'a+b');
INSERT INTO public.test(a,b,f) VALUES(12,3,'a*b');
INSERT INTO public.test(a,b,f) VALUES(5,6,'a+2*b');
----------------------------------

Is there a simple way of doing "kind of" a

SELECT *, EVAL(f) FROM public.test;

... and having f evaluated as an expression, so that we get back:

------------------------------
id   a     b    f        eval
------------------------------
1    2     3    a+b      5
2    12    3    a*b      36
3    5     6    a+2*b    17
------------------------------


Has anyone done anything like that already?

Thanks!

Philippe

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Temp rows - is it possible?
Следующее
От: Bruno Wolff III
Дата:
Сообщение: Re: Problem Deleting Referenced records