137
137
my_errno= directory.getError();
138
138
my_error(ER_CANT_READ_DIR, MYF(0), path, my_errno);
142
143
CachedDirectory::Entries entries= directory.getEntries();
1463
make_table_name_list(Session *session, vector<LEX_STRING*> &table_names, LEX *lex,
1464
make_table_name_list(Session *session, vector<LEX_STRING*> &table_names,
1464
1465
LOOKUP_FIELD_VALUES *lookup_field_vals,
1465
1466
bool with_i_schema, LEX_STRING *db_name)
1467
1468
char path[FN_REFLEN];
1469
set<string> set_of_names;
1469
1471
build_table_filename(path, sizeof(path), db_name->str, "", false);
1470
1473
if (!lookup_field_vals->wild_table_value &&
1471
1474
lookup_field_vals->table_value.str)
1488
This call will add all matching the wildcards (if specified) IS tables
1492
return plugin::InfoSchemaTable::addTableToList(session, table_names,
1493
lookup_field_vals->table_value.str);
1495
1490
string db(db_name->str);
1497
plugin::TableNameIterator tniter(db);
1502
err= tniter.next(&table_name);
1506
LEX_STRING *file_name= NULL;
1507
file_name= session->make_lex_string(file_name, table_name.c_str(),
1508
table_name.length(), true);
1509
const char* wild= lookup_field_vals->table_value.str;
1510
if (wild && wild_compare(table_name.c_str(), wild, 0))
1512
table_names.push_back(file_name);
1491
plugin::StorageEngine::getTableNames(db, set_of_names);
1494
New I_S engine will make this go away, so ignore lack of foreach() usage.
1496
Notice how bad this design is... sure we created a set... but then we
1497
are just pushing to another set. --
1498
Also... callback design won't work, so we need to rewrite this to
1499
feed (which means new I_S). For the moment we will not optimize this.
1502
for (set<string>::iterator it= set_of_names.begin(); it != set_of_names.end(); it++)
1519
/* who knows what this error condition really does...
1520
anyway, we're keeping behaviour from days of yore */
1521
if (lex->sql_command != SQLCOM_SELECT)
1523
session->clear_error();
1504
LEX_STRING *file_name= NULL;
1506
file_name= session->make_lex_string(file_name, (*it).c_str(),
1507
(*it).length(), true);
1508
const char* wild= lookup_field_vals->table_value.str;
1509
if (wild && wild_compare((*it).c_str(), wild, 0))
1512
table_names.push_back(file_name);
1856
1844
session->no_warnings_for_error= 1;
1857
1845
table_names.clear();
1858
int res= make_table_name_list(session, table_names, lex,
1846
int res= make_table_name_list(session, table_names,
1859
1847
&lookup_field_vals,
1860
1848
with_i_schema, *db_name);