23 #include <boost/lexical_cast.hpp>
24 #include <drizzled/field.h>
25 #include <drizzled/plugin/client/concurrent.h>
26 #include <drizzled/sql/result_set.h>
53 while (
Item* item= it++)
56 _result_set->setColumnCount(max_column+1);
59 item->make_field(&field);
61 _result_set->setColumnInfo(max_column, field);
68 virtual void sendError(drizzled::error_t error_code,
const char *error_message)
70 _result_set->pushException(
sql::Exception(error_message, error_code));
73 virtual void checkRowBegin()
75 if (currentColumn() == 0)
77 _result_set->createRow();
81 virtual void checkRowEnd()
88 virtual void store(Field *from)
93 char buff[MAX_FIELD_WIDTH];
94 String str(buff,
sizeof(buff), &my_charset_bin);
95 from->val_str_internal(&str);
97 return store(str.ptr(), str.length());
103 _result_set->setColumnNull(currentColumn());
107 virtual void store(int32_t from)
110 _result_set->setColumn(currentColumn(), boost::lexical_cast<std::string>(from));
114 virtual void store(uint32_t from)
117 _result_set->setColumn(currentColumn(), boost::lexical_cast<std::string>(from));
121 virtual void store(int64_t from)
124 _result_set->setColumn(currentColumn(), boost::lexical_cast<std::string>(from));
128 virtual void store(uint64_t from)
131 _result_set->setColumn(currentColumn(), boost::lexical_cast<std::string>(from));
135 virtual void store(
double from, uint32_t decimals, String *buffer)
138 buffer->set_real(from, decimals, &my_charset_bin);
139 return store(buffer->ptr(), buffer->length());
142 virtual void store(
const char *from,
size_t length)
145 _result_set->setColumn(currentColumn(), std::string(from, length));
149 inline uint32_t currentColumn()
const
151 return column % max_column;
virtual void sendFields(List< Item > &list)
TODO: Rename this file - func.h is stupid.
SendField getColumnInfo(size_t column_number)
Get object that holds column meta data.