21 #include <drizzled/error.h>
22 #include <drizzled/name_resolution_context.h>
23 #include <drizzled/table.h>
24 #include <drizzled/item/insert_value.h>
25 #include <drizzled/item/ref.h>
26 #include <drizzled/item/copy_string.h>
27 #include <drizzled/item/default_value.h>
28 #include <drizzled/field/null.h>
34 return item->type() == INSERT_VALUE_ITEM &&
46 bool res= arg->fix_fields(session, &arg);
52 if (arg->type() == REF_ITEM)
55 if (ref->ref[0]->type() != FIELD_ITEM)
57 my_error(ER_BAD_FIELD_ERROR, MYF(0),
"",
"VALUES() function");
66 assert(arg->type() == FIELD_ITEM);
70 if (field_arg->field->getTable()->insert_values.size())
72 Field *def_field= (
Field*) memory::sql_alloc(field_arg->field->size_of());
73 memcpy(def_field, field_arg->field, field_arg->field->size_of());
74 def_field->move_field_offset((ptrdiff_t)
75 (&def_field->getTable()->insert_values[0] - def_field->getTable()->
record[0]));
82 tmp_field->init(field_arg->field->getTable());
91 str->append(STRING_WITH_LEN(
"values("));
unsigned char * record[2]
bool fix_fields(Session *, Item **)
virtual void print(String *str)
virtual void print(String *str)
bool eq(const Item *item, bool binary_cmp) const
TableList * first_name_resolution_table
TableList * last_name_resolution_table