22 #include <plugin/information_schema_dictionary/dictionary.h>
25 using namespace drizzled;
27 TableConstraints::TableConstraints() :
30 add_field(
"CONSTRAINT_CATALOG", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
31 add_field(
"CONSTRAINT_SCHEMA", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
32 add_field(
"CONSTRAINT_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
33 add_field(
"TABLE_CATALOG", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
34 add_field(
"TABLE_SCHEMA", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
35 add_field(
"TABLE_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH,
false);
36 add_field(
"CONSTRAINT_TYPE");
37 add_field(
"IS_DEFERRABLE", plugin::TableFunction::BOOLEAN, 0,
false);
38 add_field(
"INITIALLY_DEFERRED", plugin::TableFunction::BOOLEAN, 0,
false);
43 generator(getSession()),
46 while (not (table_message= generator))
50 bool TableConstraints::Generator::populate()
52 if (not table_message)
57 if (index_iterator != table_message->indexes_size())
63 if (index.is_primary() || index.is_unique())
67 push(table_message->catalog());
70 push(table_message->schema());
76 push(table_message->catalog());
79 push(table_message->schema());
82 push(table_message->name());
85 if (index.is_primary())
89 else if (index.is_unique())
111 }
while ((table_message= generator));