1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Many files:

Added key cache assignment
mi_locking.c:
  Added key cache assignment: correction
my_sys.h:
  Added key cache variable structure


include/my_sys.h:
  Added key cache variable structure
include/my_base.h:
  Added key cache assignment
include/myisam.h:
  Added key cache assignment
include/my_global.h:
  Added key cache assignment
isam/_page.c:
  Added key cache assignment
isam/close.c:
  Added key cache assignment
isam/isamchk.c:
  Added key cache assignment
isam/isamlog.c:
  Added key cache assignment
isam/panic.c:
  Added key cache assignment
isam/_locking.c:
  Added key cache assignment
isam/test2.c:
  Added key cache assignment
isam/test3.c:
  Added key cache assignment
myisam/myisamdef.h:
  Added key cache assignment
myisam/mi_check.c:
  Added key cache assignment
myisam/mi_close.c:
  Added key cache assignment
myisam/mi_extra.c:
  Added key cache assignment
myisam/mi_page.c:
  Added key cache assignment
myisam/mi_panic.c:
  Added key cache assignment
myisam/mi_preload.c:
  Added key cache assignment
myisam/mi_test1.c:
  Added key cache assignment
myisam/mi_test2.c:
  Added key cache assignment
myisam/mi_test3.c:
  Added key cache assignment
myisam/myisamchk.c:
  Added key cache assignment
myisam/myisamlog.c:
  Added key cache assignment
myisam/mi_delete_all.c:
  Added key cache assignment
myisam/mi_locking.c:
  Added key cache assignment: correction
myisam/mi_keycache.c:
  Added key cache assignment
sql/handler.h:
  Added key cache assignment
sql/mysql_priv.h:
  Added key cache assignment
sql/set_var.h:
  Added key cache assignment
sql/table.h:
  Added key cache assignment
sql/ha_myisam.cc:
  Added key cache assignment
sql/ha_myisammrg.cc:
  Added key cache assignment
sql/handler.cc:
  Added key cache assignment
sql/mysqld.cc:
  Added key cache assignment
sql/set_var.cc:
  Added key cache assignment
sql/sql_base.cc:
  Added key cache assignment
sql/sql_table.cc:
  Added key cache assignment
sql/sql_test.cc:
  Added key cache assignment
sql/sql_yacc.yy:
  Added key cache assignment
mysys/mf_keycache.c:
  Added key cache assignment
mysql-test/t/key_cache.test:
  Added key cache assignment
mysql-test/r/key_cache.result:
  Added key cache assignment
This commit is contained in:
unknown
2003-08-02 02:43:18 -07:00
parent 4f6f7f7ded
commit b6d27e20e1
43 changed files with 1133 additions and 295 deletions

View File

@ -55,6 +55,31 @@ typedef struct st_filesort_info
ha_rows found_records; /* How many records in sort */
} FILESORT_INFO;
/* Table key cache assignment descriptor */
/*
In future the similar structure is to be used for
an assignment of an index to a key cache: the index name will be added.
The name of the database catalog will be added as well.
The descriptors for the current assignments are put in the
assignment cache: assign_cache. If a table is not found in the cache
it is considered assigned to the default key cache.
*/
typedef struct st_key_cache_asmt
{
char *db_name; /* db the table belongs to */
char *table_name; /* the name of the table */
char *table_key; /* key for the assignment cache */
uint key_length; /* the length of this key */
struct st_key_cache_var *key_cache; /* reference to the key cache */
struct st_key_cache_asmt **prev; /* links in the chain all assignments */
struct st_key_cache_asmt *next; /* to this cache */
struct st_my_thread_var *queue; /* queue of requests for assignment */
uint requests; /* number of current requests */
bool to_reassign; /* marked when reassigning all cache */
bool triggered; /* marked when assignment is triggered*/
} KEY_CACHE_ASMT;
/* Table cache entry struct */
class Field_timestamp;
@ -62,11 +87,13 @@ class Field_blob;
struct st_table {
handler *file;
Field **field; /* Pointer to fields */
KEY_CACHE_VAR *key_cache; /* Ref to the key cache the table assigned to*/
KEY_CACHE_ASMT *key_cache_asmt;/* Only when opened for key cache assignment */
Field **field; /* Pointer to fields */
Field_blob **blob_field; /* Pointer to blob fields */
HASH name_hash; /* hash of field names */
byte *record[2]; /* Pointer to records */
byte *default_values; /* record with default values for INSERT */
byte *default_values; /* Record with default values for INSERT */
byte *insert_values; /* used by INSERT ... UPDATE */
uint fields; /* field count */
uint reclength; /* Recordlength */
@ -159,6 +186,7 @@ typedef struct st_table_list
{
struct st_table_list *next;
char *db, *alias, *real_name;
char *option; /* Used by cache index */
Item *on_expr; /* Used with outer join */
struct st_table_list *natural_join; /* natural join on this table*/
/* ... join ... USE INDEX ... IGNORE INDEX */
@ -197,3 +225,5 @@ typedef struct st_open_table_list
char *db,*table;
uint32 in_use,locked;
} OPEN_TABLE_LIST;