32
32
#include <google/protobuf/io/zero_copy_stream.h>
33
33
#include <google/protobuf/io/zero_copy_stream_impl.h>
35
#include <drizzled/cached_directory.h>
35
#include "drizzled/cached_directory.h"
37
37
#include <drizzled/definitions.h>
38
38
#include <drizzled/base.h>
43
43
#include <drizzled/gettext.h>
44
44
#include <drizzled/unireg.h>
45
45
#include <drizzled/data_home.h>
46
#include <drizzled/errmsg_print.h>
47
#include <drizzled/xid.h>
48
#include <drizzled/sql_table.h>
49
#include <drizzled/global_charset_info.h>
50
#include <drizzled/charset.h>
51
#include <drizzled/internal/my_sys.h>
46
#include "drizzled/errmsg_print.h"
47
#include "drizzled/xid.h"
48
#include "drizzled/sql_table.h"
49
#include "drizzled/global_charset_info.h"
50
#include "drizzled/charset.h"
51
#include "drizzled/internal/my_sys.h"
52
#include "drizzled/db.h"
53
54
#include <drizzled/table_proto.h>
54
55
#include <drizzled/plugin/event_observer.h>
55
#include <drizzled/internal_error_handler.h>
57
57
#include <drizzled/table/shell.h>
59
#include <drizzled/message/cache.h>
59
#include "drizzled/message/cache.h"
61
61
#include <boost/algorithm/string/compare.hpp>
365
Call this function in order to give the Cursor the possiblity
366
to ask engine if there are any new tables that should be written to disk
367
or any dropped tables that need to be removed from disk
369
int StorageEngine::getTableDefinition(Session& session,
370
const identifier::Table &identifier,
371
message::table::shared_ptr &table_message,
372
bool include_temporary_tables)
374
drizzled::error_t err= static_cast<drizzled::error_t>(ENOENT);
376
if (include_temporary_tables)
378
Table *table= session.find_temporary_table(identifier);
381
table_message.reset(new message::Table(*table->getShare()->getTableMessage()));
386
drizzled::message::table::shared_ptr table_ptr;
387
if ((table_ptr= drizzled::message::Cache::singleton().find(identifier)))
389
table_message= table_ptr;
392
message::Table message;
393
EngineVector::iterator iter=
394
std::find_if(vector_of_engines.begin(), vector_of_engines.end(),
395
StorageEngineGetTableDefinition(session, identifier, message, err));
397
if (iter == vector_of_engines.end())
401
table_message.reset(new message::Table(message));
403
drizzled::message::Cache::singleton().insert(identifier, table_message);
364
408
message::table::shared_ptr StorageEngine::getTableMessage(Session& session,
365
409
identifier::Table::const_reference identifier,
410
drizzled::error_t &error,
366
411
bool include_temporary_tables)
368
drizzled::error_t error;
369
413
error= static_cast<drizzled::error_t>(ENOENT);
371
415
if (include_temporary_tables)
801
847
- table->getShare()->path
804
void StorageEngine::print_error(int error, myf errflag, const Table &table) const
850
void StorageEngine::print_error(int error, myf errflag, Table &table)
806
852
drizzled::error_t textno= ER_GET_ERRNO;
1006
1052
Returns true if this is a temporary error
1008
bool StorageEngine::get_error_message(int , String* ) const
1054
bool StorageEngine::get_error_message(int , String* )
1014
void StorageEngine::print_keydup_error(uint32_t key_nr, const char *msg, const Table &table) const
1060
void StorageEngine::print_keydup_error(uint32_t key_nr, const char *msg, Table &table)
1016
1062
/* Write the duplicated key in the error message */
1017
1063
char key[MAX_KEY_LENGTH];