Loading mysql-test/r/row.result +6 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,12 @@ SELECT ROW(2,1) IN (ROW(21,2),ROW(ROW(1,1,3),0)); ERROR 21000: Operand should contain 1 column(s) SELECT ROW(2,1) IN (ROW(ROW(1,1,3),0),ROW(21,2)); ERROR 21000: Operand should contain 1 column(s) SELECT ROW(1,1,1) = ROW(1,1,1) as `1`, ROW(1,1,1) = ROW(1,2,1) as `0`, ROW(1,NULL,1) = ROW(2,2,1) as `0`, ROW(1,NULL,1) = ROW(1,2,2) as `0`, ROW(1,NULL,1) = ROW(1,2,1) as `null` ; 1 0 0 0 null 1 0 0 0 NULL select row(NULL,1)=(2,0); row(NULL,1)=(2,0) 0 CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b)); INSERT INTO t1 VALUES (1,1), (2,1), (3,1), (1,2), (3,2), (3,3); EXPLAIN SELECT * FROM t1 WHERE a=3 AND b=2; Loading sql/item_cmpfunc.cc +3 −3 Original line number Diff line number Diff line Loading @@ -95,9 +95,9 @@ static int cmp_row_type(Item* item1, Item* item2) return 1; for (uint i=0; i<n; i++) { if (item2->el(i)->check_cols(item1->el(i)->cols()) || (item1->el(i)->result_type() == ROW_RESULT && cmp_row_type(item1->el(i), item2->el(i)))) if (item2->element_index(i)->check_cols(item1->element_index(i)->cols()) || (item1->element_index(i)->result_type() == ROW_RESULT && cmp_row_type(item1->element_index(i), item2->element_index(i)))) return 1; } return 0; Loading Loading
mysql-test/r/row.result +6 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,12 @@ SELECT ROW(2,1) IN (ROW(21,2),ROW(ROW(1,1,3),0)); ERROR 21000: Operand should contain 1 column(s) SELECT ROW(2,1) IN (ROW(ROW(1,1,3),0),ROW(21,2)); ERROR 21000: Operand should contain 1 column(s) SELECT ROW(1,1,1) = ROW(1,1,1) as `1`, ROW(1,1,1) = ROW(1,2,1) as `0`, ROW(1,NULL,1) = ROW(2,2,1) as `0`, ROW(1,NULL,1) = ROW(1,2,2) as `0`, ROW(1,NULL,1) = ROW(1,2,1) as `null` ; 1 0 0 0 null 1 0 0 0 NULL select row(NULL,1)=(2,0); row(NULL,1)=(2,0) 0 CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b)); INSERT INTO t1 VALUES (1,1), (2,1), (3,1), (1,2), (3,2), (3,3); EXPLAIN SELECT * FROM t1 WHERE a=3 AND b=2; Loading
sql/item_cmpfunc.cc +3 −3 Original line number Diff line number Diff line Loading @@ -95,9 +95,9 @@ static int cmp_row_type(Item* item1, Item* item2) return 1; for (uint i=0; i<n; i++) { if (item2->el(i)->check_cols(item1->el(i)->cols()) || (item1->el(i)->result_type() == ROW_RESULT && cmp_row_type(item1->el(i), item2->el(i)))) if (item2->element_index(i)->check_cols(item1->element_index(i)->cols()) || (item1->element_index(i)->result_type() == ROW_RESULT && cmp_row_type(item1->element_index(i), item2->element_index(i)))) return 1; } return 0; Loading