~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/insert_value.cc

  • Committer: Mark Atwood
  • Date: 2011-07-13 22:28:29 UTC
  • mfrom: (2318.7.25 refactor1)
  • Revision ID: me@mark.atwood.name-20110713222829-sswp061b5ts7tc1k
mergeĀ lp:~olafvdspek/drizzle/refactor1

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
#include <drizzled/item/default_value.h>
28
28
#include <drizzled/field/null.h>
29
29
 
30
 
namespace drizzled
31
 
{
 
30
namespace drizzled {
32
31
 
33
32
bool Item_insert_value::eq(const Item *item, bool binary_cmp) const
34
33
{
42
41
  /* We should only check that arg is in first table */
43
42
  if (!arg->fixed)
44
43
  {
45
 
    bool res;
46
44
    TableList *orig_next_table= context->last_name_resolution_table;
47
45
    context->last_name_resolution_table= context->first_name_resolution_table;
48
 
    res= arg->fix_fields(session, &arg);
 
46
    bool res= arg->fix_fields(session, &arg);
49
47
    context->last_name_resolution_table= orig_next_table;
50
48
    if (res)
51
49
      return true;
72
70
  if (field_arg->field->getTable()->insert_values.size())
73
71
  {
74
72
    Field *def_field= (Field*) memory::sql_alloc(field_arg->field->size_of());
75
 
    if (!def_field)
76
 
      return true;
77
73
    memcpy(def_field, field_arg->field, field_arg->field->size_of());
78
74
    def_field->move_field_offset((ptrdiff_t)
79
75
                                 (&def_field->getTable()->insert_values[0] - def_field->getTable()->record[0]));
81
77
  }
82
78
  else
83
79
  {
84
 
    Field *tmp_field= field_arg->field;
85
80
    /* charset doesn't matter here, it's to avoid sigsegv only */
86
 
    tmp_field= new Field_null(0, 0, field_arg->field->field_name);
87
 
    if (tmp_field)
88
 
    {
89
 
      tmp_field->init(field_arg->field->getTable());
90
 
      set_field(tmp_field);
91
 
    }
 
81
    Field* tmp_field= new Field_null(0, 0, field_arg->field->field_name);
 
82
    tmp_field->init(field_arg->field->getTable());
 
83
    set_field(tmp_field);
92
84
  }
93
85
  return false;
94
86
}