40
#include <drizzled/error.h>
41
#include <drizzled/gettext.h>
42
#include <drizzled/sql_base.h>
43
#include <drizzled/pthread_globals.h>
44
#include <drizzled/internal/my_pthread.h>
46
#include <drizzled/table.h>
47
#include <drizzled/table/shell.h>
49
#include <drizzled/session.h>
51
#include <drizzled/charset.h>
52
#include <drizzled/internal/m_string.h>
53
#include <drizzled/internal/my_sys.h>
55
#include <drizzled/item/string.h>
56
#include <drizzled/item/int.h>
57
#include <drizzled/item/decimal.h>
58
#include <drizzled/item/float.h>
59
#include <drizzled/item/null.h>
60
#include <drizzled/temporal.h>
62
#include <drizzled/field.h>
63
#include <drizzled/field/str.h>
64
#include <drizzled/field/num.h>
65
#include <drizzled/field/blob.h>
66
#include <drizzled/field/boolean.h>
67
#include <drizzled/field/enum.h>
68
#include <drizzled/field/null.h>
69
#include <drizzled/field/date.h>
70
#include <drizzled/field/decimal.h>
71
#include <drizzled/field/real.h>
72
#include <drizzled/field/double.h>
73
#include <drizzled/field/int32.h>
74
#include <drizzled/field/int64.h>
75
#include <drizzled/field/size.h>
76
#include <drizzled/field/num.h>
77
#include <drizzled/field/time.h>
78
#include <drizzled/field/epoch.h>
79
#include <drizzled/field/datetime.h>
80
#include <drizzled/field/microtime.h>
81
#include <drizzled/field/varstring.h>
82
#include <drizzled/field/uuid.h>
84
#include <drizzled/plugin/storage_engine.h>
86
#include <drizzled/definition/cache.h>
87
#include <drizzled/typelib.h>
89
#include <drizzled/refresh_version.h>
40
#include "drizzled/error.h"
41
#include "drizzled/gettext.h"
42
#include "drizzled/sql_base.h"
43
#include "drizzled/pthread_globals.h"
44
#include "drizzled/internal/my_pthread.h"
45
#include "drizzled/plugin/event_observer.h"
47
#include "drizzled/table.h"
48
#include "drizzled/table/shell.h"
50
#include "drizzled/session.h"
52
#include "drizzled/charset.h"
53
#include "drizzled/internal/m_string.h"
54
#include "drizzled/internal/my_sys.h"
56
#include "drizzled/item/string.h"
57
#include "drizzled/item/int.h"
58
#include "drizzled/item/decimal.h"
59
#include "drizzled/item/float.h"
60
#include "drizzled/item/null.h"
61
#include "drizzled/temporal.h"
63
#include "drizzled/field.h"
64
#include "drizzled/field/str.h"
65
#include "drizzled/field/num.h"
66
#include "drizzled/field/blob.h"
67
#include "drizzled/field/boolean.h"
68
#include "drizzled/field/enum.h"
69
#include "drizzled/field/null.h"
70
#include "drizzled/field/date.h"
71
#include "drizzled/field/decimal.h"
72
#include "drizzled/field/real.h"
73
#include "drizzled/field/double.h"
74
#include "drizzled/field/int32.h"
75
#include "drizzled/field/int64.h"
76
#include "drizzled/field/size.h"
77
#include "drizzled/field/num.h"
78
#include "drizzled/field/time.h"
79
#include "drizzled/field/epoch.h"
80
#include "drizzled/field/datetime.h"
81
#include "drizzled/field/microtime.h"
82
#include "drizzled/field/varstring.h"
83
#include "drizzled/field/uuid.h"
85
#include "drizzled/definition/cache.h"
91
87
using namespace std;
427
blob_ptr_size(portable_sizeof_char_ptr),
428
423
db_low_byte_first(false),
426
event_observers(NULL)
429
memset(&db, 0, sizeof(LEX_STRING));
430
memset(&table_name, 0, sizeof(LEX_STRING));
431
memset(&path, 0, sizeof(LEX_STRING));
432
memset(&normalized_path, 0, sizeof(LEX_STRING));
432
434
private_key_for_cache= identifier.getKey();
433
435
assert(identifier.getPath().size()); // Since we are doing a create table, this should be a positive value
434
436
private_normalized_path.resize(identifier.getPath().size() + 1);
1529
1559
int TableShare::open_table_def(Session& session, const identifier::Table &identifier)
1531
drizzled::error_t local_error= EE_OK;
1533
message::table::shared_ptr table= plugin::StorageEngine::getTableMessage(session, identifier, local_error);
1535
if (table and table->IsInitialized())
1537
if (parse_table_proto(session, *table))
1539
local_error= ER_CORRUPT_TABLE_DEFINITION_UNKNOWN;
1540
my_error(ER_CORRUPT_TABLE_DEFINITION_UNKNOWN, identifier);
1544
setTableCategory(TABLE_CATEGORY_USER);
1548
else if (table and not table->IsInitialized())
1550
local_error= ER_CORRUPT_TABLE_DEFINITION_UNKNOWN;
1551
my_error(ER_CORRUPT_TABLE_DEFINITION_UNKNOWN, identifier);
1555
local_error= ER_TABLE_UNKNOWN;
1556
my_error(ER_TABLE_UNKNOWN, identifier);
1559
return static_cast<int>(local_error);
1567
message::table::shared_ptr table;
1569
local_error= plugin::StorageEngine::getTableDefinition(session, identifier, table);
1572
if (local_error != EEXIST)
1574
if (local_error > 0)
1581
if (not table->IsInitialized())
1589
local_error= parse_table_proto(session, *table);
1591
setTableCategory(TABLE_CATEGORY_USER);
1594
if (local_error && !error_given)
1597
open_table_error(error, (open_errno= errno), 0);