Query cast injection
1. 인수의 데이터 유형과 예상 데이터 유형이 일치하지 않는 표현식 및 조건 내 쿼리 항목 트리에 형변경 작업 추가
CREATE TABLE d (dt DATETIME, d DATE, t TIME);
CREATE TABLE n (i INT, d DECIMAL, f FLOAT, dc DECIMAL);
CREATE TABLE s (c CHAR(25), vc VARCHAR(25), bn BINARY(50), vb VARBINARY(50), b BLOB, t TEXT, e ENUM('a', 'b', 'c'), se SET('x' ,'y', 'z'));
SELECT * from d JOIN n ON d.dt = n.i
/*
EXPLAIN FORMAT=TREE
-> Inner hash join (cast(d.dt as double) = cast(n.i as double)) (cost=0.70 rows=1)
-> Table scan on n (cost=0.35 rows=1)
-> Hash
-> Table scan on d (cost=0.35 rows=1)
*/
SELECT * from s JOIN d ON d.dt = s.c;
/*
EXPLAIN FORMAT=TREE
-> Inner hash join (cast(n.d as double) = cast(s.c as double)) (cost=0.70 rows=1)
-> Table scan on s (cost=0.35 rows=1)
-> Hash
-> Table scan on n (cost=0.35 rows=1)
*/
SELECT * from n JOIN s ON n.d = s.c;
/*
EXPLAIN FORMAT=TREE
-> Inner hash join (cast(n.d as double) = cast(s.c as double)) (cost=0.70 rows=1)
-> Table scan on s (cost=0.35 rows=1)
-> Hash
-> Table scan on n (cost=0.35 rows=1)
*/Last updated