12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- drop function check_open(stock_bar, float);
- create function check_open(tsrow stock_bar, ARG_VAL float) returning stock_bar;
- -- Use the argument in some way
- if tsrow.high > ARG_VAL then
- let tsrow.high = -1;
- end if
- return row(tsrow.timestamp, tsrow.high, tsrow.low, tsrow.final, tsrow.vol)::stock_bar;
- end function;
- --------------------------------------------------------------------------------
- drop procedure spl_test();
- create procedure spl_test()
- define id integer;
- define name lvarchar;
- define var stock_bar;
- define ts timeseries(stock_bar);
- begin work;
- foreach select stock_id, stock_name, stock_data into id, name, ts from daily_stocks
-
- foreach execute function transpose(
- ts::timeseries(stock_bar),
- '2011-01-03 00:00:00.00000'::datetime year to fraction(5),
- '2011-04-10 00:00:00.00000'::datetime year to fraction(5))
- into var
- execute function check_open(var, 600) into var;
- update daily_stocks set stock_data = PutElemNoDups(stock_data, var);
- end foreach
- end foreach
- commit work;
- end procedure;
|