]> granicus.if.org Git - postgresql/blob - src/test/regress/expected/bitmapops.out
Remove useless whitespace at end of lines
[postgresql] / src / test / regress / expected / bitmapops.out
1 -- Test bitmap AND and OR
2 -- Generate enough data that we can test the lossy bitmaps.
3 -- There's 55 tuples per page in the table. 53 is just
4 -- below 55, so that an index scan with qual a = constant
5 -- will return at least one hit per page. 59 is just above
6 -- 55, so that an index scan with qual b = constant will return
7 -- hits on most but not all pages. 53 and 59 are prime, so that
8 -- there's a maximum number of a,b combinations in the table.
9 -- That allows us to test all the different combinations of
10 -- lossy and non-lossy pages with the minimum amount of data
11 CREATE TABLE bmscantest (a int, b int, t text);
12 INSERT INTO bmscantest
13   SELECT (r%53), (r%59), 'foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo'
14   FROM generate_series(1,70000) r;
15 CREATE INDEX i_bmtest_a ON bmscantest(a);
16 CREATE INDEX i_bmtest_b ON bmscantest(b);
17 -- We want to use bitmapscans. With default settings, the planner currently
18 -- chooses a bitmap scan for the queries below anyway, but let's make sure.
19 set enable_indexscan=false;
20 set enable_seqscan=false;
21 -- Lower work_mem to trigger use of lossy bitmaps
22 set work_mem = 64;
23 -- Test bitmap-and.
24 SELECT count(*) FROM bmscantest WHERE a = 1 AND b = 1;
25  count 
26 -------
27     23
28 (1 row)
29
30 -- Test bitmap-or.
31 SELECT count(*) FROM bmscantest WHERE a = 1 OR b = 1;
32  count 
33 -------
34   2485
35 (1 row)
36
37 -- clean up
38 DROP TABLE bmscantest;