examples_setup.sql 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. -- Setup patterns for calendars
  2. insert into CalendarPatterns
  3. values('workmonth',
  4. '{1 on}, month');
  5. insert into CalendarPatterns
  6. values('fourday_day',
  7. '{1 off, 4 on, 2 off}, day');
  8. insert into CalendarPatterns
  9. values('workweek_day',
  10. '{1 off, 5 on, 1 off}, day');
  11. insert into CalendarPatterns
  12. values('workweek_week',
  13. '{1 on}, week');
  14. insert into CalendarPatterns
  15. values('workweek_hour',
  16. '{32 off, 9 on, 15 off, 9 on, 15 off, 9 on, 15 off, 9 on, 15 off, 9 on, 31 off}, hour');
  17. insert into CalendarTable(c_name, c_calendar)
  18. values ('weekcal',
  19. 'startdate(2011-01-02 00:00:00.00000), pattstart(2011-01-02 00:00:00.00000), pattname(workweek_week)');
  20. insert into CalendarTable(c_name, c_calendar)
  21. values ('monthcal',
  22. 'startdate(2011-01-01 00:00:00.00000), pattstart(2011-01-01 00:00:00.00000), pattname(workmonth)');
  23. insert into CalendarTable(c_name, c_calendar)
  24. values ('daycal',
  25. 'startdate(2011-01-02 00:00:00.00000), pattstart(2011-01-02 00:00:00.00000), pattname(workweek_day)');
  26. insert into CalendarTable(c_name, c_calendar)
  27. values ('fourdaycal',
  28. 'startdate(2011-01-02 00:00:00.00000), pattstart(2011-01-02 00:00:00.00000), pattname(fourday_day)');
  29. insert into CalendarTable(c_name, c_calendar)
  30. values ('hourcal',
  31. 'startdate(2011-01-02 00:00:00.00000), pattstart(2011-01-02 00:00:00.00000), pattname(workweek_hour)');
  32. create row type stock_trade(
  33. timestamp datetime year to fraction(5),
  34. price double precision,
  35. vol double precision,
  36. trade int,
  37. broker int,
  38. buyer int,
  39. seller int
  40. );
  41. execute procedure TSContainerCreate('ctnr_stock', 'rootdbs', 'stock_trade', 0, 0);
  42. create row type one_real (timestamp datetime year to fraction(5), result real);
  43. create row type stock_bar (
  44. timestamp datetime year to fraction(5),
  45. high real,
  46. low real,
  47. final real,
  48. vol real);
  49. create row type stock_bar_union (
  50. timestamp datetime year to fraction(5),
  51. high real,
  52. low real,
  53. final real,
  54. vol real,
  55. high2 real,
  56. low2 real,
  57. final2 real,
  58. vol2 real);
  59. create table daily_stocks(
  60. stock_id int,
  61. stock_name lvarchar,
  62. stock_data TimeSeries(stock_bar));
  63. create table rel_ticks (trade stock_trade,
  64. stock_id int);
  65. insert into rel_ticks values (
  66. row('2011-01-10 00:00:00.00000', 66, 55, 44, 33, 22, 11)::stock_trade,
  67. 600);
  68. insert into rel_ticks values (
  69. row('2011-01-11 00:00:00.00000', 11, 22, 33, 44, 55, 66)::stock_trade,
  70. 600);
  71. insert into daily_stocks values (
  72. 901,
  73. 'IBM',
  74. 'origin(2011-01-03 00:00:00.00000), calendar(daycal), [(356, 310, 340, 999), (156, 110, 140, 111)]');
  75. insert into daily_stocks values (
  76. 902,
  77. 'HWP',
  78. 'origin(2011-01-03 00:00:00.00000), calendar(daycal), [(403, 401, 402, 253), (503, 501, 502, 302)]');
  79. update daily_stocks
  80. set stock_data = PutElem(stock_data,row('2011-01-06 00:00:00.00000',99,54,66,888)::stock_bar)
  81. where stock_id = 901;
  82. create table activity_stocks(
  83. stock_id int,
  84. activity_data TimeSeries(stock_trade)
  85. );
  86. insert into activity_stocks values (
  87. 600,
  88. 'irregular, container(ctnr_stock), origin(2011-01-03 00:00:00.00000), calendar(daycal), [(6.25,1000,1,7,2,1)@2011-01-04 12:58:09.12345, (6.50, 2000, 1,8,3,1)@2011-01-05 12:58:09.23456]');
  89. create table activity_load_tab(stock_id int, set_data multiset(stock_trade not null));
  90. insert into activity_load_tab values (
  91. 600,
  92. 'multiset{row("2011-01-06 13:14:15.98765",6.75,3000,1,9,4,1),row("2011-01-06 14:13:12.56789",7.00,4000,1,10,5,1)}');
  93. create function Interp(TimeSeries) returns TimeSeries
  94. external name '$USERFUNCDIR/Interpolate.bld(ts_interp)'
  95. language c not variant;
  96. create procedure TSIncLoad( table_name lvarchar,
  97. file_name lvarchar,
  98. calendar_name lvarchar,
  99. origin datetime year to day,
  100. threshold integer,
  101. regular boolean,
  102. container_name lvarchar,
  103. nelems integer)
  104. external name '$USERFUNCDIR/Loader.bld(TSIncLoad)'
  105. language C;
  106. create function TsToList(TimeSeries, integer) returns list
  107. external name '$USERFUNCDIR/TsToList.bld(ts_to_list)'
  108. language c not variant;