~maria-captains/maria/5.2

« back to all changes in this revision

Viewing changes to sql/item.cc

  • Committer: Sergei Golubchik
  • Date: 2014-02-13 07:25:33 UTC
  • mfrom: (2643.137.75 5.1)
  • Revision ID: sergii@pisem.net-20140213072533-gkbllmcu4qkp9024
5.1 merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
1304
1304
Item_name_const::Item_name_const(Item *name_arg, Item *val):
1305
1305
    value_item(val), name_item(name_arg)
1306
1306
{
1307
 
  if (!(valid_args= name_item->basic_const_item() &&
1308
 
                    (value_item->basic_const_item() ||
1309
 
                     ((value_item->type() == FUNC_ITEM) &&
1310
 
                      ((((Item_func *) value_item)->functype() ==
1311
 
                         Item_func::COLLATE_FUNC) ||
1312
 
                      ((((Item_func *) value_item)->functype() ==
1313
 
                         Item_func::NEG_FUNC) &&
1314
 
                      (((Item_func *) value_item)->key_item()->type() !=
1315
 
                         FUNC_ITEM)))))))
1316
 
    my_error(ER_WRONG_ARGUMENTS, MYF(0), "NAME_CONST");
1317
1307
  Item::maybe_null= TRUE;
 
1308
  valid_args= true;
 
1309
  if (!name_item->basic_const_item())
 
1310
    goto err;
 
1311
 
 
1312
  if (value_item->basic_const_item())
 
1313
    return; // ok
 
1314
 
 
1315
  if (value_item->type() == FUNC_ITEM)
 
1316
  {
 
1317
    Item_func *value_func= (Item_func *) value_item;
 
1318
    if (value_func->functype() != Item_func::COLLATE_FUNC &&
 
1319
        value_func->functype() != Item_func::NEG_FUNC)
 
1320
      goto err;
 
1321
 
 
1322
    if (value_func->key_item()->basic_const_item())
 
1323
      return; // ok
 
1324
  }
 
1325
 
 
1326
err:
 
1327
  valid_args= false;
 
1328
  my_error(ER_WRONG_ARGUMENTS, MYF(0), "NAME_CONST");
1318
1329
}
1319
1330
 
1320
1331