mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
Merge calliope.local.cmiller:/Volumes/Source/src/mysql-4.1-maint--bug25126
into calliope.local.cmiller:/Volumes/Source/src/mysql-4.1-maint sql/item.cc: Auto merged mysql-test/r/order_by.result: Manual merge. mysql-test/t/order_by.test: Manual merge.
This commit is contained in:
commit
5097c6fc06
3 changed files with 65 additions and 1 deletions
|
|
@ -847,6 +847,30 @@ num (select num + 2 FROM t1 LIMIT 1)
|
|||
SELECT a.a + 1 AS num FROM t1 a JOIN t1 b ON num = b.a;
|
||||
ERROR 42S22: Unknown column 'num' in 'on clause'
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE bug25126 (
|
||||
val int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
);
|
||||
UPDATE bug25126 SET MissingCol = MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'field list'
|
||||
UPDATE bug25126 SET val = val ORDER BY MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
|
||||
UPDATE bug25126 SET val = val ORDER BY val;
|
||||
UPDATE bug25126 SET val = 1 ORDER BY val;
|
||||
UPDATE bug25126 SET val = 1 ORDER BY MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
|
||||
UPDATE bug25126 SET val = 1 ORDER BY val, MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
|
||||
UPDATE bug25126 SET val = MissingCol ORDER BY MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
|
||||
UPDATE bug25126 SET MissingCol = 1 ORDER BY val, MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
|
||||
UPDATE bug25126 SET MissingCol = 1 ORDER BY MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
|
||||
UPDATE bug25126 SET MissingCol = val ORDER BY MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
|
||||
UPDATE bug25126 SET MissingCol = MissingCol ORDER BY MissingCol;
|
||||
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
|
||||
DROP TABLE bug25126;
|
||||
CREATE TABLE t1 (a int);
|
||||
SELECT p.a AS val, q.a AS val1 FROM t1 p, t1 q ORDER BY val > 1;
|
||||
val val1
|
||||
|
|
|
|||
|
|
@ -575,6 +575,35 @@ SELECT a + 1 AS num, (select num + 2 FROM t1 LIMIT 1) FROM t1;
|
|||
SELECT a.a + 1 AS num FROM t1 a JOIN t1 b ON num = b.a;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#25126: Reference to non-existant column in UPDATE...ORDER BY...
|
||||
# crashes server
|
||||
#
|
||||
CREATE TABLE bug25126 (
|
||||
val int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
);
|
||||
--error 1054
|
||||
UPDATE bug25126 SET MissingCol = MissingCol;
|
||||
--error 1054
|
||||
UPDATE bug25126 SET val = val ORDER BY MissingCol;
|
||||
UPDATE bug25126 SET val = val ORDER BY val;
|
||||
UPDATE bug25126 SET val = 1 ORDER BY val;
|
||||
--error 1054
|
||||
UPDATE bug25126 SET val = 1 ORDER BY MissingCol;
|
||||
--error 1054
|
||||
UPDATE bug25126 SET val = 1 ORDER BY val, MissingCol;
|
||||
--error 1054
|
||||
UPDATE bug25126 SET val = MissingCol ORDER BY MissingCol;
|
||||
--error 1054
|
||||
UPDATE bug25126 SET MissingCol = 1 ORDER BY val, MissingCol;
|
||||
--error 1054
|
||||
UPDATE bug25126 SET MissingCol = 1 ORDER BY MissingCol;
|
||||
--error 1054
|
||||
UPDATE bug25126 SET MissingCol = val ORDER BY MissingCol;
|
||||
--error 1054
|
||||
UPDATE bug25126 SET MissingCol = MissingCol ORDER BY MissingCol;
|
||||
DROP TABLE bug25126;
|
||||
|
||||
#
|
||||
# Bug #25427: crash when order by expression contains a name
|
||||
# that cannot be resolved unambiguously
|
||||
|
|
|
|||
13
sql/item.cc
13
sql/item.cc
|
|
@ -1774,7 +1774,18 @@ bool Item_field::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref)
|
|||
use the field from the Item_field in the select list and leave
|
||||
the Item_field instance in place.
|
||||
*/
|
||||
set_field((*((Item_field**)res))->field);
|
||||
|
||||
Field *field= (*((Item_field**)res))->field;
|
||||
|
||||
if (field == NULL)
|
||||
{
|
||||
/* The column to which we link isn't valid. */
|
||||
my_error(ER_BAD_FIELD_ERROR, MYF(0), (*res)->name,
|
||||
current_thd->where);
|
||||
return(1);
|
||||
}
|
||||
|
||||
set_field(field);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue