diff options
author | unknown <igor@rurik.mysql.com> | 2004-06-25 06:52:01 -0700 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2004-06-25 06:52:01 -0700 |
commit | 5ebdd3e765ecf712d98c0df46899cb0ec617393b (patch) | |
tree | 3decbedc2a2648c3c3e779e9f0673453df99f9f3 /sql/table.h | |
parent | ad9356432170889f412a7a413fd28c09d5eac0bf (diff) | |
download | mariadb-git-5ebdd3e765ecf712d98c0df46899cb0ec617393b.tar.gz |
After merge fix
Diffstat (limited to 'sql/table.h')
-rw-r--r-- | sql/table.h | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/sql/table.h b/sql/table.h index 4f4ab42f3e9..c59b5a03bc4 100644 --- a/sql/table.h +++ b/sql/table.h @@ -26,6 +26,7 @@ class st_select_lex_unit; typedef struct st_order { struct st_order *next; Item **item; /* Point at item in select fields */ + Item *item_ptr; /* Storage for initial item */ Item **item_copy; /* For SPs; the original item ptr */ bool asc; /* true if ascending */ bool free_me; /* true if item isn't shared */ @@ -66,7 +67,8 @@ struct st_table { handler *file; Field **field; /* Pointer to fields */ Field_blob **blob_field; /* Pointer to blob fields */ - HASH name_hash; /* hash of field names */ + /* hash of field names (contains pointers to elements of field array) */ + HASH name_hash; byte *record[2]; /* Pointer to records */ byte *default_values; /* Default values for INSERT */ byte *insert_values; /* used by INSERT ... UPDATE */ @@ -97,8 +99,20 @@ struct st_table { uint raid_type,raid_chunks; uint status; /* Used by postfix.. */ uint system; /* Set if system record */ - ulong time_stamp; /* Set to offset+1 of record */ + + /* + These two members hold offset in record + 1 for TIMESTAMP field + with NOW() as default value or/and with ON UPDATE NOW() option. + If 0 then such field is absent in this table or auto-set for default + or/and on update should be temporaly disabled for some reason. + These values is setup to offset value for each statement in open_table() + and turned off in statement processing code (see mysql_update as example). + */ + ulong timestamp_default_now; + ulong timestamp_on_update_now; + /* Index of auto-updated TIMESTAMP field in field array */ uint timestamp_field_offset; + uint next_number_index; uint blob_ptr_size; /* 4 or 8 */ uint next_number_key_offset; @@ -109,7 +123,7 @@ struct st_table { my_bool maybe_null,outer_join; /* Used with OUTER JOIN */ my_bool force_index; my_bool distinct,const_table,no_rows; - my_bool key_read, bulk_insert; + my_bool key_read; my_bool crypted; my_bool db_low_byte_first; /* Portable row format */ my_bool locked_by_flush; @@ -119,7 +133,7 @@ struct st_table { my_bool is_view; my_bool no_keyread, no_cache; my_bool clear_query_id; /* To reset query_id for tables and cols */ - my_bool auto_increment_field_not_null; + my_bool auto_increment_field_not_null; Field *next_number_field, /* Set if next_number is activated */ *found_next_number_field, /* Set on open */ *rowid_field; @@ -170,7 +184,7 @@ typedef struct st_table_list GRANT_INFO grant; thr_lock_type lock_type; uint outer_join; /* Which join type */ - uint shared; /* Used in union or in multi-upd */ + uint shared; /* Used in multi-upd */ uint32 db_length, real_name_length; bool straight; /* optimize with prev table */ bool updating; /* for replicate-do/ignore table */ @@ -181,6 +195,9 @@ typedef struct st_table_list struct st_nested_join *nested_join; /* if the element is a nested join */ st_table_list *embedding; /* nested join containing the table */ List<struct st_table_list> *join_list;/* join list the table belongs to */ + bool cacheable_table; /* stop PS caching */ + /* used in multi-upd privelege check */ + bool table_in_update_from_clause; } TABLE_LIST; typedef struct st_nested_join |