1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-25 17:25:02 +03:00
Files
mariadb/mysql-test/t
evgen@moonbone.local 9a233742b8 Bug#23800: Outer fields in correlated subqueries is used in a temporary table
created for sorting.

Any outer reference in a subquery was represented by an Item_field object.
If the outer select employs a temporary table all such fields should be
replaced with fields from that temporary table in order to point to the 
actual data. This replacement wasn't done and that resulted in a wrong
subquery evaluation and a wrong result of the whole query.

Now any outer field is represented by two objects - Item_field placed in the
outer select and Item_outer_ref in the subquery. Item_field object is
processed as a normal field and the reference to it is saved in the
ref_pointer_array. Thus the Item_outer_ref is always references the correct
field. The original field is substituted for a reference in the
Item_field::fix_outer_field() function.

New function called fix_inner_refs() is added to fix fields referenced from
inner selects and to fix references (Item_ref objects) to these fields.

The new Item_outer_ref class is a descendant of the Item_direct_ref class.
It additionally stores a reference to the original field and designed to
behave more like a field.
2007-02-21 23:00:32 +03:00
..
2007-01-18 18:37:52 -07:00
2006-11-20 22:42:06 +02:00
2006-11-20 22:42:06 +02:00
2006-11-20 22:42:06 +02:00
2006-11-20 22:42:06 +02:00
2006-11-29 13:56:59 -05:00
2007-01-23 10:11:53 -08:00
2006-11-20 22:42:06 +02:00
2006-12-07 15:22:43 +04:00
2006-11-20 22:42:06 +02:00
2006-11-20 22:42:06 +02:00
2006-11-15 10:23:27 +01:00
2007-02-10 23:55:56 -08:00
2007-02-09 12:54:50 -08:00
2006-11-15 10:23:27 +01:00
2006-12-26 20:22:16 +04:00
2006-12-04 14:05:27 +03:00
2006-11-20 22:42:06 +02:00
2006-11-15 10:23:27 +01:00
2006-11-15 10:23:27 +01:00
2006-11-15 10:23:27 +01:00
2006-11-15 10:23:27 +01:00
2006-09-21 00:59:48 +02:00
2006-12-11 18:52:24 -07:00
2006-11-20 22:42:06 +02:00
2006-08-30 13:20:39 -07:00
2006-08-30 13:20:39 -07:00
2006-08-30 13:20:39 -07:00
2006-08-30 13:20:39 -07:00
2006-08-30 13:20:39 -07:00
2006-11-20 22:42:06 +02:00
2007-01-26 17:10:45 -08:00
2007-01-19 12:03:03 +01:00
2006-12-04 14:26:05 +02:00
2007-02-02 15:22:10 -08:00
2006-10-05 12:41:26 +02:00