4827
4827
DATABASES show_wild
4830
lex->sql_command= SQLCOM_SHOW_DATABASES;
4830
lex->sql_command= SQLCOM_SELECT;
4831
4831
lex->statement=
4832
4832
new(std::nothrow) statement::Select(YYSession);
4833
4833
if (lex->statement == NULL)
4834
4834
DRIZZLE_YYABORT;
4835
if (prepare_schema_table(YYSession, lex, 0, "OLD_SCHEMATA"))
4836
Session *session= YYSession;
4838
std::string column_name= "Database";
4841
column_name.append(" (");
4842
column_name.append(Lex->wild->c_str());
4843
column_name.append(")");
4846
if (Lex->current_select->where)
4848
if (prepare_new_schema_table(YYSession, lex, "SCHEMAS"))
4853
if (prepare_new_schema_table(YYSession, lex, "SCHEMA_NAMES"))
4857
Item_field *my_field= new Item_field(&session->lex->current_select->context, NULL, NULL, "SCHEMA_NAME");
4858
my_field->is_autogenerated_name= false;
4859
my_field->set_name(column_name.c_str(), column_name.length(), system_charset_info);
4861
if (session->add_item_to_list(my_field))
4836
4862
DRIZZLE_YYABORT;
4838
4864
| TABLES opt_db show_wild
4841
lex->sql_command= SQLCOM_SHOW_TABLES;
4867
lex->sql_command= SQLCOM_SELECT;
4842
4868
lex->statement=
4843
4869
new(std::nothrow) statement::Select(YYSession);
4844
4870
if (lex->statement == NULL)
4845
4871
DRIZZLE_YYABORT;
4846
lex->select_lex.db= $2;
4847
if (prepare_schema_table(YYSession, lex, 0, "TABLE_NAMES"))
4873
Session *session= YYSession;
4875
std::string column_name= "Tables_in_";
4879
message::Schema schema_message;
4880
column_name.append($2);
4881
lex->select_lex.db= $2;
4882
if (not plugin::StorageEngine::getSchemaDefinition($2, schema_message))
4884
my_error(ER_BAD_DB_ERROR, MYF(0), $2);
4889
column_name.append(session->db);
4894
column_name.append(" (");
4895
column_name.append(Lex->wild->c_str());
4896
column_name.append(")");
4899
if (Lex->current_select->where)
4901
if (prepare_new_schema_table(YYSession, lex, "TABLES"))
4906
if (prepare_new_schema_table(YYSession, lex, "LOCAL_TABLE_NAMES"))
4910
Item_field *my_field= new Item_field(&session->lex->current_select->context, NULL, NULL, "TABLE_NAME");
4911
my_field->is_autogenerated_name= false;
4912
my_field->set_name(column_name.c_str(), column_name.length(), system_charset_info);
4914
if (session->add_item_to_list(my_field))
4848
4915
DRIZZLE_YYABORT;
4850
4917
| TABLE_SYM STATUS_SYM opt_db show_wild