34
34
add_field("COLUMN_NAME");
35
35
add_field("COLUMN_TYPE");
36
add_field("ORDINAL_POSITION", plugin::TableFunction::NUMBER);
37
add_field("COLUMN_DEFAULT");
38
add_field("COLUMN_DEFAULT_IS_NULL", plugin::TableFunction::BOOLEAN);
36
add_field("ORDINAL_POSITION", plugin::TableFunction::NUMBER, 0, false);
37
add_field("COLUMN_DEFAULT", plugin::TableFunction::VARBINARY, 65535, true);
38
add_field("COLUMN_DEFAULT_IS_NULL", plugin::TableFunction::BOOLEAN, 0, false);
39
39
add_field("COLUMN_DEFAULT_UPDATE");
40
add_field("IS_NULLABLE", plugin::TableFunction::BOOLEAN);
41
add_field("IS_INDEXED", plugin::TableFunction::BOOLEAN);
42
add_field("IS_USED_IN_PRIMARY", plugin::TableFunction::BOOLEAN);
43
add_field("IS_UNIQUE", plugin::TableFunction::BOOLEAN);
44
add_field("IS_MULTI", plugin::TableFunction::BOOLEAN);
45
add_field("IS_FIRST_IN_MULTI", plugin::TableFunction::BOOLEAN);
46
add_field("INDEXES_FOUND_IN", plugin::TableFunction::NUMBER);
40
add_field("IS_AUTO_INCREMENT", plugin::TableFunction::BOOLEAN, 0, false);
41
add_field("IS_NULLABLE", plugin::TableFunction::BOOLEAN, 0, false);
42
add_field("IS_INDEXED", plugin::TableFunction::BOOLEAN, 0, false);
43
add_field("IS_USED_IN_PRIMARY", plugin::TableFunction::BOOLEAN, 0, false);
44
add_field("IS_UNIQUE", plugin::TableFunction::BOOLEAN, 0, false);
45
add_field("IS_MULTI", plugin::TableFunction::BOOLEAN, 0, false);
46
add_field("IS_FIRST_IN_MULTI", plugin::TableFunction::BOOLEAN, 0, false);
47
add_field("INDEXES_FOUND_IN", plugin::TableFunction::NUMBER, 0, false);
47
48
add_field("DATA_TYPE");
49
50
add_field("CHARACTER_MAXIMUM_LENGTH", plugin::TableFunction::NUMBER);
51
52
add_field("NUMERIC_PRECISION", plugin::TableFunction::NUMBER);
52
53
add_field("NUMERIC_SCALE", plugin::TableFunction::NUMBER);
55
add_field("ENUM_VALUES", plugin::TableFunction::STRING, 1024, true);
54
57
add_field("COLLATION_NAME");
56
add_field("COLUMN_COMMENT", 1024);
59
add_field("COLUMN_COMMENT", plugin::TableFunction::STRING, 1024, true);
135
135
push(static_cast<int64_t>(column_iterator));
137
137
/* COLUMN_DEFAULT */
138
push(column.options().default_value());
138
if (column.options().has_default_value())
140
push(column.options().default_value());
142
else if (column.options().has_default_bin_value())
144
push(column.options().default_bin_value().c_str(), column.options().default_bin_value().length());
146
else if (column.options().has_default_expression())
148
push(column.options().default_expression());
140
155
/* COLUMN_DEFAULT_IS_NULL */
141
156
push(column.options().default_null());
143
158
/* COLUMN_DEFAULT_UPDATE */
144
push(column.options().update_value());
159
push(column.options().update_expression());
161
/* IS_AUTO_INCREMENT */
162
push(column.numeric_options().is_autoincrement());
146
164
/* IS_NULLABLE */
147
165
push(column.constraints().is_nullable());
207
225
/* "NUMERIC_SCALE" */
208
226
push(static_cast<int64_t>(column.numeric_options().scale()));
229
if (column.type() == drizzled::message::Table::Field::ENUM)
232
size_t num_field_values= column.enumeration_values().field_value_size();
233
for (size_t x= 0; x < num_field_values; ++x)
235
const string &type= column.enumeration_values().field_value(x);
238
destination.push_back(',');
240
destination.push_back('\'');
241
destination.append(type);
242
destination.push_back('\'');
210
249
/* "COLLATION_NAME" */
211
250
push(column.string_options().collation());
213
252
/* "COLUMN_COMMENT" */
214
push(column.comment());
253
if (column.has_comment())
255
push(column.comment());