  virtual bool setup(Item *item)
  {
    example= item;
    max_length= item->max_length;
    decimals= item->decimals;
    collation.set(item->collation);
    unsigned_flag= item->unsigned_flag;
    if (item->type() == FIELD_ITEM)
    {
      cached_field= ((Item_field *)item)->field;
      if (cached_field->table)
        used_table_map= cached_field->table->map;
    }
    return 0;
  };
  virtual bool setup(Item *item)
  {
    example= item;
    max_length= item->max_length;
    decimals= item->decimals;
    collation.set(item->collation);
    unsigned_flag= item->unsigned_flag;
    if (item->type() == FIELD_ITEM)
    {
      cached_field= ((Item_field *)item)->field;
      if (cached_field->table)
        used_table_map= cached_field->table->map;
    }
    return 0;
  };