DELETE FROM pg_statistic_ext;
DELETE FROM gs_model_warehouse;
CREATE TABLE db4ai_bayesnet (id INT, attr1 VARCHAR(256), attr2 VARCHAR(256), attr3 INT, attr4 INT, attr5 double precision, attr6 double precision);
COPY db4ai_bayesnet FROM '@abs_srcdir@/data/bayesnet_test_data.csv' DELIMITER ',';
SET enable_ai_stats=1;
SET multi_stats_type='BAYESNET';
set default_statistics_target=-80;
ANALYZE db4ai_bayesnet((id,attr1,attr2));
ANALYZE db4ai_bayesnet((id,attr3,attr4));
ANALYZE db4ai_bayesnet((id,attr5,attr6));
ANALYZE db4ai_bayesnet((attr1,attr2));
ANALYZE db4ai_bayesnet((attr1,attr3));
ANALYZE db4ai_bayesnet((attr1,attr5));
ANALYZE db4ai_bayesnet((attr2,attr3));
ANALYZE db4ai_bayesnet((attr2,attr5));
ANALYZE db4ai_bayesnet((attr3,attr4));
ANALYZE db4ai_bayesnet((attr3,attr5));
ANALYZE db4ai_bayesnet((attr4,attr5));
ANALYZE db4ai_bayesnet((attr5,attr6));
ANALYZE db4ai_bayesnet((attr1,attr2,attr3));
ANALYZE db4ai_bayesnet((attr1,attr2,attr5));
ANALYZE db4ai_bayesnet((attr1,attr3,attr4));
ANALYZE db4ai_bayesnet((attr1,attr3,attr5));
ANALYZE db4ai_bayesnet((attr1,attr4,attr5));
ANALYZE db4ai_bayesnet((attr1,attr5,attr6));
ANALYZE db4ai_bayesnet((attr2,attr3,attr4));
ANALYZE db4ai_bayesnet((attr2,attr3,attr5));
ANALYZE db4ai_bayesnet((attr2,attr4,attr5));
ANALYZE db4ai_bayesnet((attr2,attr5,attr6));
ANALYZE db4ai_bayesnet((attr3,attr4,attr5));
ANALYZE db4ai_bayesnet((attr3,attr5,attr6));
EXPLAIN SELECT * FROM db4ai_bayesnet WHERE id='1' AND attr1='a582' AND attr2='b682';
                                         QUERY PLAN                                         
--------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: ((id = 1) AND ((attr1)::text = 'a582'::text) AND ((attr2)::text = 'b682'::text))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr2='b682';
                                  QUERY PLAN                                   
-------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr1)::text = 'a582'::text) AND ((attr2)::text = 'b682'::text))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr3=833;
                            QUERY PLAN                            
------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr1)::text = 'a582'::text) AND (attr3 = 833))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr5=0.959;
                                   QUERY PLAN                                    
---------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr1)::text = 'a582'::text) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr2='b682' AND attr3=833;
                            QUERY PLAN                            
------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr2)::text = 'b682'::text) AND (attr3 = 833))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr2='b682' AND attr5=0.959;
                                   QUERY PLAN                                    
---------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr2)::text = 'b682'::text) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr3=833 AND attr4=421;
--?.*
--?.*
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: ((attr3 = 833) AND (attr4 = 421))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr3=833 AND attr5=0.959;
                            QUERY PLAN                            
------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: ((attr3 = 833) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr4=421 AND attr5=0.959;
                            QUERY PLAN                            
------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: ((attr4 = 421) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr5=0.959 AND attr6=0.76;
                                    QUERY PLAN                                    
----------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: ((attr5 = .959::double precision) AND (attr6 = .76::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr2='b682' AND attr3=833;
                                           QUERY PLAN                                            
-------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr1)::text = 'a582'::text) AND ((attr2)::text = 'b682'::text) AND (attr3 = 833))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr2='b682' AND attr5=0.959;
                                                     QUERY PLAN                                                     
--------------------------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr1)::text = 'a582'::text) AND ((attr2)::text = 'b682'::text) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr3=833 AND attr4=421;
                                   QUERY PLAN                                   
--------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr1)::text = 'a582'::text) AND (attr3 = 833) AND (attr4 = 421))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr3=833 AND attr5=0.959;
                                            QUERY PLAN                                             
---------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr1)::text = 'a582'::text) AND (attr3 = 833) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr5=0.959 AND attr6=0.76;
                                                     QUERY PLAN                                                      
---------------------------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr1)::text = 'a582'::text) AND (attr5 = .959::double precision) AND (attr6 = .76::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr2='b682' AND attr3=833 AND attr4=421;
                                   QUERY PLAN                                   
--------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr2)::text = 'b682'::text) AND (attr3 = 833) AND (attr4 = 421))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr2='b682' AND attr3=833 AND attr5=0.959;
                                            QUERY PLAN                                             
---------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr2)::text = 'b682'::text) AND (attr3 = 833) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr2='b682' AND attr4=421 AND attr5=0.959;
                                            QUERY PLAN                                             
---------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr2)::text = 'b682'::text) AND (attr4 = 421) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr2='b682' AND attr5=0.959 AND attr6=0.76;
                                                     QUERY PLAN                                                      
---------------------------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: (((attr2)::text = 'b682'::text) AND (attr5 = .959::double precision) AND (attr6 = .76::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr3=833 AND attr4=421 AND attr5=0.959;
                                    QUERY PLAN                                    
----------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: ((attr3 = 833) AND (attr4 = 421) AND (attr5 = .959::double precision))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr3=833 AND attr5=0.959 AND attr6=0.76;
                                             QUERY PLAN                                             
----------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=1060)
   Filter: ((attr3 = 833) AND (attr5 = .959::double precision) AND (attr6 = .76::double precision))
(2 rows)

SELECT COUNT(1) from pg_statistic_ext;
 count 
-------
    24
(1 row)

SELECT COUNT(1) from gs_model_warehouse;
 count 
-------
    24
(1 row)

DELETE FROM pg_statistic_ext;
DELETE FROM gs_model_warehouse;
ALTER TABLE db4ai_bayesnet add statistics((attr1, attr2));
ALTER TABLE db4ai_bayesnet add statistics((attr2, attr3));
ALTER TABLE db4ai_bayesnet add statistics((attr1, attr2, attr3));
ANALYZE db4ai_bayesnet;
EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr2='b682';
                                  QUERY PLAN                                   
-------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=38)
   Filter: (((attr1)::text = 'a582'::text) AND ((attr2)::text = 'b682'::text))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr2='b682' AND attr3=833;
                           QUERY PLAN                           
----------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=38)
   Filter: (((attr2)::text = 'b682'::text) AND (attr3 = 833))
(2 rows)

EXPLAIN SELECT * FROM db4ai_bayesnet WHERE attr1='a582' AND attr2='b682' AND attr3=833;
                                           QUERY PLAN                                            
-------------------------------------------------------------------------------------------------
--? Seq Scan on db4ai_bayesnet  (cost=0.00...* rows=1 width=38)
   Filter: (((attr1)::text = 'a582'::text) AND ((attr2)::text = 'b682'::text) AND (attr3 = 833))
(2 rows)

SELECT COUNT(1) from pg_statistic_ext;
 count 
-------
     3
(1 row)

SELECT COUNT(1) from gs_model_warehouse;
 count 
-------
     3
(1 row)

DROP TABLE db4ai_bayesnet;
DELETE FROM pg_statistic_ext;
DELETE FROM gs_model_warehouse;
SET enable_ai_stats=0;