polardbxengine/mysql-test/suite/ndb/t/ndb_partition_hash.test

59 lines
1.5 KiB
Plaintext

--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;