22 #include <plugin/information_schema_dictionary/dictionary.h>
30 add_field(
"TABLE_CATALOG", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
31 add_field(
"TABLE_SCHEMA", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
32 add_field(
"TABLE_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
33 add_field(
"COLUMN_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
34 add_field(
"ORDINAL_POSITION", plugin::TableFunction::NUMBER, 0,
false);
35 add_field(
"COLUMN_DEFAULT", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
36 add_field(
"IS_NULLABLE", plugin::TableFunction::BOOLEAN, 0,
false);
37 add_field(
"DATA_TYPE", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
38 add_field(
"CHARACTER_MAXIMUM_LENGTH", plugin::TableFunction::NUMBER, 0,
true);
39 add_field(
"CHARACTER_OCTET_LENGTH", plugin::TableFunction::NUMBER, 0,
true);
40 add_field(
"NUMERIC_PRECISION", plugin::TableFunction::NUMBER, 0,
true);
41 add_field(
"NUMERIC_PRECISION_RADIX", plugin::TableFunction::NUMBER, 0,
true);
42 add_field(
"NUMERIC_SCALE", plugin::TableFunction::NUMBER, 0,
true);
43 add_field(
"DATETIME_PRECISION", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
44 add_field(
"CHARACTER_SET_CATALOG", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
45 add_field(
"CHARACTER_SET_SCHEMA", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
46 add_field(
"CHARACTER_SET_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
47 add_field(
"COLLATION_CATALOG", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
48 add_field(
"COLLATION_SCHEMA", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
49 add_field(
"COLLATION_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
50 add_field(
"DOMAIN_CATALOG", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
51 add_field(
"DOMAIN_SCHEMA", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
52 add_field(
"DOMAIN_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
true);
57 field_generator(getSession())
61 bool Columns::Generator::populate()
63 drizzled::generator::FieldPair field_pair;
64 while (!!(field_pair= field_generator))
67 int32_t field_iterator= field_pair.second;
71 push(table_message->catalog());
74 push(table_message->schema());
77 push(table_message->name());
83 push(static_cast<int64_t>(field_iterator));
86 if (field.options().has_default_value())
88 push(field.options().default_value());
96 push(not field.constraints().is_notnull());
99 push(drizzled::message::type(field));
102 if (field.string_options().has_length())
104 push(static_cast<int64_t>(field.string_options().length()));
112 if (field.string_options().has_length())
114 push(static_cast<int64_t>(field.string_options().length() * 4));
122 if (field.numeric_options().has_precision())
124 push(static_cast<int64_t>(field.numeric_options().precision()));
135 if (field.numeric_options().has_scale())
137 push(static_cast<int64_t>(field.numeric_options().scale()));
163 if (field.string_options().has_collation())
165 push(field.string_options().collation());
TODO: Rename this file - func.h is stupid.