--source include/have_ndb.inc # # Simple test for the partition storage engine # Focuses on range partitioning tests # #-- source include/have_partition.inc --disable_query_log set new=on; --enable_query_log --disable_warnings drop table if exists t1; --enable_warnings # # Partition by hash, basic # # # BUG37934: # Partition pruning is broken for DBT2 table # Testcase from Mikael Ronstrom. # Note that the testcase did not fail previously, but accessed # partitions unnecessarily # Testcase now checks that all scan accesses are pruned at # NDBAPI level # CREATE TABLE t1 ( ol_o_id int NOT NULL, ol_d_id int NOT NULL, ol_w_id int NOT NULL, ol_number int NOT NULL, ol_tmp int, PRIMARY KEY (ol_w_id, ol_d_id, ol_o_id, ol_number) ) ENGINE=NDB PARTITION BY HASH (ol_w_id); insert into t1 values (1,0,0,0,0),(1,0,0,1,0),(1,0,0,2,0),(1,1,0,0,0),(1,1,0,1,0); insert into t1 values (2,0,0,0,0),(4,0,0,0,0),(4,0,0,1,0); insert into t1 values (0,1,1,4,0),(0,1,1,5,0); # Only rows affected. --source suite/ndb/include/ndb_init_scan_counts.inc UPDATE t1 force index (primary) SET ol_tmp = 1 WHERE ol_o_id = 0 AND ol_d_id = 1 AND ol_w_id = 1; --source suite/ndb/include/ndb_scan_counts.inc --source suite/ndb/include/ndb_init_scan_counts.inc SELECT * FROM t1 WHERE ol_w_id = 1 AND ol_d_id = 1 AND ol_o_id = 0; --source suite/ndb/include/ndb_scan_counts.inc --source suite/ndb/include/ndb_init_scan_counts.inc SELECT SUM(ol_number) FROM t1 WHERE ol_o_id = 0 AND ol_w_id = 1 AND ol_d_id = 1; --source suite/ndb/include/ndb_scan_counts.inc drop table t1;