mirror of
https://github.com/MariaDB/server.git
synced 2026-05-02 13:15:32 +02:00
Table definition cache, part 2
The table opening process now works the following way: - Create common TABLE_SHARE object - Read the .frm file and unpack it into the TABLE_SHARE object - Create a TABLE object based on the information in the TABLE_SHARE object and open a handler to the table object Other noteworthy changes: - In TABLE_SHARE the most common strings are now LEX_STRING's - Better error message when table is not found - Variable table_cache is now renamed 'table_open_cache' - New variable 'table_definition_cache' that is the number of table defintions that will be cached - strxnmov() calls are now fixed to avoid overflows - strxnmov() will now always add one end \0 to result - engine objects are now created with a TABLE_SHARE object instead of a TABLE object. - After creating a field object one must call field->init(table) before using it - For a busy system this change will give you: - Less memory usage for table object - Faster opening of tables (if it's has been in use or is in table definition cache) - Allow you to cache many table definitions objects - Faster drop of table
This commit is contained in:
parent
b167a6679b
commit
e42c980967
100 changed files with 3649 additions and 2115 deletions
|
|
@ -173,7 +173,7 @@ private:
|
|||
int stash_remote_error();
|
||||
|
||||
public:
|
||||
ha_federated(TABLE *table_arg);
|
||||
ha_federated(TABLE_SHARE *table_arg);
|
||||
~ha_federated() {}
|
||||
/* The name that will be used for display purposes */
|
||||
const char *table_type() const { return "FEDERATED"; }
|
||||
|
|
@ -232,8 +232,7 @@ public:
|
|||
*/
|
||||
double scan_time()
|
||||
{
|
||||
DBUG_PRINT("info",
|
||||
("records %d", records));
|
||||
DBUG_PRINT("info", ("records %lu", (ulong) records));
|
||||
return (double)(records*1000);
|
||||
}
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue