same type, including the same signedness, length, character set and collation, precision, and scale, where these are applicable. 

2. Queries referencing BLOB  or TEXT  columns are not supported. 

3. Explicit locking is not supported; however, the NDB  storage engine’s characteristic implicit row-based locking is enforced. 

This means that a join using FOR UPDATE  cannot be pushed down. 

4. In order for a join to be pushed down, child tables in the join must be accessed using one of the ref , eq_ref , or const  access methods, or some combination of these methods. 

Outer joined child tables can only be pushed using eq_ref . 

If the root of the pushed join is an eq_ref  or const , only child tables joined by eq_ref  can be appended. (A table joined by ref  is likely to become the root of another pushed join.) 

If the query optimizer decides on Using join cache  for a candidate child table, that table cannot be pushed as a child. However, it may be the root of another set of pushed tables. 

5. Joins referencing tables explicitly partitioned by [LINEAR] HASH , LIST , or RANGE  currently cannot be pushed down. 

You can see whether a given join can be pushed down by checking it with EXPLAIN ; when the join can be pushed down, you can see references to the pushed join  in the Extra  column of the output, as shown in this example: 

mysql> EXPLAIN -> SELECT e.first_name, e.last_name, t.title, d.dept_name -> FROM employees e -> JOIN dept_emp de ON e.emp_no=de.emp_no -> JOIN departments d ON d.dept_no=de.dept_no -> JOIN titles t ON e.emp_no=t.emp_no\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: d type: ALL possible_keys: PRIMARY key: NULL key_len: NULL ref: NULL rows: 9 Extra: Parent of 4 pushed join@1 *************************** 2. row *************************** id: 1 select_type: SIMPLE table: de type: ref possible_keys: PRIMARY,emp_no,dept_no key: dept_no key_len: 4 ref: employees.d.dept_no rows: 5305 Extra: Child of ’d’ in pushed join@1 *************************** 3. row *************************** id: 1 select_type: SIMPLE table: e type: eq_ref possible_keys: PRIMARY 

