handler should be used with constant expressions only (or rand)

This commit is contained in:
unknown 2003-07-04 12:55:25 +02:00
parent a29adff6b8
commit 4b50f4f252
3 changed files with 10 additions and 1 deletions

View File

@ -151,4 +151,6 @@ insert into t1 values (1), (2), (3);
handler t1 open;
handler t1 read a=(W);
Unknown column 'W' in 'field list'
handler t1 read a=(a);
Wrong arguments to HANDLER ... READ
drop table t1;

View File

@ -88,5 +88,7 @@ insert into t1 values (1), (2), (3);
handler t1 open;
--error 1054
handler t1 read a=(W);
--error 1210
handler t1 read a=(a);
drop table t1;

View File

@ -194,7 +194,12 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
for (key_len=0 ; (item=it_ke++) ; key_part++)
{
if (item->fix_fields(thd, tables))
return -1;
goto err;
if (item->used_tables() & ~RAND_TABLE_BIT)
{
my_error(ER_WRONG_ARGUMENTS,MYF(0),"HANDLER ... READ");
goto err;
}
item->save_in_field(key_part->field, 1);
key_len+=key_part->store_length;
}