diff options
author | unknown <igor@rurik.mysql.com> | 2003-08-02 02:43:18 -0700 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2003-08-02 02:43:18 -0700 |
commit | b6d27e20e19e1998b745a438dbde635261ebc5d4 (patch) | |
tree | add5cbee3049a38799b03ee640b5ae06fbc34ef1 /sql/table.h | |
parent | 4f6f7f7ded18764b8aa382c3a84261657fea66f8 (diff) | |
download | mariadb-git-b6d27e20e19e1998b745a438dbde635261ebc5d4.tar.gz |
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
Diffstat (limited to 'sql/table.h')
-rw-r--r-- | sql/table.h | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/sql/table.h b/sql/table.h index 3132e72fb2f..ad5908ae5c2 100644 --- a/sql/table.h +++ b/sql/table.h @@ -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; + + |