polardbxengine/mysql-test/suite/opt_trace/t/range_no_prot.test

58 lines
1.6 KiB
Plaintext

# Start server with MyISAM
--source include/force_myisam_default.inc
# Skip the test if MyISAM is not available
--source include/have_myisam.inc
# Test requires: sp-protocol/ps-protocol/view-protocol/cursor-protocol disabled
--source include/no_protocol.inc
# The main testing script
--source suite/opt_trace/include/range.inc
--echo
--echo # BUG#18023222 OPTIMIZER TRACE ERROR ON RANGE ANALYSIS OF
--echo # INDEX ON A BINARY COLUMN
--echo
CREATE TABLE t(i INT PRIMARY KEY, b BINARY(16), INDEX i_b(b));
INSERT INTO t VALUES (1, x'D95B94336A9946A39CF5B58CFE772D8C');
INSERT INTO t VALUES (2, NULL);
EXPLAIN SELECT * FROM t WHERE b IN (0xD95B94336A9946A39CF5B58CFE772D8C);
SELECT trace FROM information_schema.optimizer_trace;
EXPLAIN SELECT * FROM t WHERE b IS NULL;
SELECT trace FROM information_schema.optimizer_trace;
drop table t;
--source include/show_json_object.inc
--echo #
--echo # Test trace of geometry fields
--echo #
# Must be an engine that supports spatial indexes
CREATE TABLE t1(
pk INT AUTO_INCREMENT PRIMARY KEY,
col_geom GEOMETRY NOT NULL SRID 0
) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1, ST_GeomFromText('POINT(10 10)'));
INSERT INTO t1 VALUES (2, ST_GeomFromText('POINT(11 11)'));
CREATE SPATIAL INDEX idx3 on t1(col_geom);
--echo # Show that geometry data is traced as "unprintable_geometry_value"
EXPLAIN
SELECT pk, ST_AsText(col_geom)
FROM t1
WHERE MBREquals(t1.col_geom, ST_GeomFromText('POINT(12 13)'));
SELECT show_json_object('"range_scan_alternatives": [', TRACE)
FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
DROP TABLE t1;
DROP FUNCTION show_json_object;