@@ -333,3 +333,68 @@ select count(*) from vit where i>='1 minute'::interval;
333333 2
334334(1 row)
335335
336+ create table stock(symbol char(5), day date, low real, high real, open real, close real);
337+ insert into stock values
338+ ('AAA', '01-11-2018', 10.0, 11.0, 10.1, 10.8),
339+ ('AAA', '02-11-2018', 11.0, 12.0, 11.2, 11.5),
340+ ('AAA', '03-11-2018', 10.4, 10.6, 10.5, 10.4),
341+ ('AAA', '04-11-2018', 11.1, 11.5, 11.2, 11.4),
342+ ('AAA', '05-11-2018', 11.0, 11.3, 11.4, 11.1);
343+ select create_projection('vstock','stock',array['day','low','high','open','close'],array['symbol'],'day');
344+ create_projection
345+ -------------------
346+
347+ (1 row)
348+
349+ select vstock_refresh();
350+ vstock_refresh
351+ ----------------
352+ 5
353+ (1 row)
354+
355+ select avg((open+close)/2),max(high-low) from stock group by symbol;
356+ avg | max
357+ -----------------+-----
358+ 10.960000038147 | 1
359+ (1 row)
360+
361+ set vops.auto_substitute_projections=on;
362+ explain (costs off) select avg((open+close)/2),max(high-low) from stock group by symbol;
363+ QUERY PLAN
364+ --------------------------
365+ HashAggregate
366+ Group Key: symbol
367+ -> Seq Scan on vstock
368+ (3 rows)
369+
370+ select avg((open+close)/2),max(high-low) from stock group by symbol;
371+ avg | max
372+ -----------------+-----
373+ 10.960000038147 | 1
374+ (1 row)
375+
376+ insert into stock values
377+ ('AAA', '06-11-2018', 10.1, 10.8, 10.3, 10.2),
378+ ('AAA', '07-11-2018', 11.1, 11.8, 10.2, 11.4),
379+ ('AAA', '08-11-2018', 11.2, 11.6, 11.4, 11.3),
380+ ('AAA', '09-11-2018', 10.6, 11.1, 11.3, 10.8),
381+ ('AAA', '10-11-2018', 10.7, 11.3, 10.8, 11.1);
382+ select vstock_refresh();
383+ vstock_refresh
384+ ----------------
385+ 5
386+ (1 row)
387+
388+ select avg((open+close)/2),max(high-low) from stock group by symbol;
389+ avg | max
390+ ------------------+-----
391+ 10.9200000762939 | 1
392+ (1 row)
393+
394+ set vops.auto_substitute_projections=off;
395+ select avg((open+close)/2),max(high-low) from stock group by symbol;
396+ avg | max
397+ ------------------+-----
398+ 10.9200000762939 | 1
399+ (1 row)
400+
0 commit comments