Below is the list of changes that have just been committed into a local
5.1 repository of cps. When cps does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2006-08-23 16:48:39+04:00, petr@stripped +8 -0
Merge pchardin@stripped:/home/bk/mysql-5.1
into mysql.com:/home/cps/mysql/trees/mysql-5.1-virgin
MERGE: 1.2264.14.4
sql/handler.cc@stripped, 2006-08-23 16:48:35+04:00, petr@stripped +1 -2
manual merge
MERGE: 1.254.1.1
sql/mysql_priv.h@stripped, 2006-08-23 16:44:11+04:00, petr@stripped +0 -0
Auto merged
MERGE: 1.428.1.1
sql/sql_acl.cc@stripped, 2006-08-23 16:44:11+04:00, petr@stripped +0 -0
Auto merged
MERGE: 1.203.1.1
sql/sql_base.cc@stripped, 2006-08-23 16:44:11+04:00, petr@stripped +0 -0
Auto merged
MERGE: 1.342.1.2
sql/sql_show.cc@stripped, 2006-08-23 16:44:11+04:00, petr@stripped +0 -0
Auto merged
MERGE: 1.361.1.1
sql/sql_view.cc@stripped, 2006-08-23 16:44:11+04:00, petr@stripped +0 -0
Auto merged
MERGE: 1.101.1.1
sql/table.cc@stripped, 2006-08-23 16:44:11+04:00, petr@stripped +0 -0
Auto merged
MERGE: 1.239.1.1
sql/table.h@stripped, 2006-08-23 16:44:11+04:00, petr@stripped +0 -0
Auto merged
MERGE: 1.148.1.1
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: petr
# Host: owlet.local
# Root: /home/cps/mysql/trees/mysql-5.1-virgin/RESYNC
--- 1.255/sql/handler.cc 2006-08-23 16:48:53 +04:00
+++ 1.256/sql/handler.cc 2006-08-23 16:48:53 +04:00
@@ -72,10 +72,10 @@ ulong savepoint_alloc_size= 0;
static const LEX_STRING sys_table_aliases[]=
{
- {(char*)STRING_WITH_LEN("INNOBASE")}, {(char*)STRING_WITH_LEN("INNODB")},
- {(char*)STRING_WITH_LEN("NDB")}, {(char*)STRING_WITH_LEN("NDBCLUSTER")},
- {(char*)STRING_WITH_LEN("HEAP")}, {(char*)STRING_WITH_LEN("MEMORY")},
- {(char*)STRING_WITH_LEN("MERGE")}, {(char*)STRING_WITH_LEN("MRG_MYISAM")},
+ { C_STRING_WITH_LEN("INNOBASE") }, { C_STRING_WITH_LEN("INNODB") },
+ { C_STRING_WITH_LEN("NDB") }, { C_STRING_WITH_LEN("NDBCLUSTER") },
+ { C_STRING_WITH_LEN("HEAP") }, { C_STRING_WITH_LEN("MEMORY") },
+ { C_STRING_WITH_LEN("MERGE") }, { C_STRING_WITH_LEN("MRG_MYISAM") },
{NullS, 0}
};
--- 1.430/sql/mysql_priv.h 2006-08-23 16:48:53 +04:00
+++ 1.431/sql/mysql_priv.h 2006-08-23 16:48:53 +04:00
@@ -1477,7 +1477,7 @@ extern char *mysql_data_home,server_vers
def_ft_boolean_syntax[sizeof(ft_boolean_syntax)];
#define mysql_tmpdir (my_tmpdir(&mysql_tmpdir_list))
extern MY_TMPDIR mysql_tmpdir_list;
-extern LEX_STRING command_name[];
+extern const LEX_STRING command_name[];
extern const char *first_keyword, *my_localhost, *delayed_user, *binary_keyword;
extern const char **errmesg; /* Error messages */
extern const char *myisam_recover_options_str;
--- 1.206/sql/sql_acl.cc 2006-08-23 16:48:53 +04:00
+++ 1.207/sql/sql_acl.cc 2006-08-23 16:48:53 +04:00
@@ -36,114 +36,114 @@ time_t mysql_db_table_last_check= 0L;
TABLE_FIELD_W_TYPE mysql_db_table_fields[MYSQL_DB_FIELD_COUNT] = {
{
- {(char *) STRING_WITH_LEN("Host")},
- {(char *) STRING_WITH_LEN("char(60)")},
+ { C_STRING_WITH_LEN("Host") },
+ { C_STRING_WITH_LEN("char(60)") },
{NULL, 0}
},
{
- {(char *) STRING_WITH_LEN("Db")},
- {(char *) STRING_WITH_LEN("char(64)")},
+ { C_STRING_WITH_LEN("Db") },
+ { C_STRING_WITH_LEN("char(64)") },
{NULL, 0}
},
{
- {(char *) STRING_WITH_LEN("User")},
- {(char *) STRING_WITH_LEN("char(16)")},
+ { C_STRING_WITH_LEN("User") },
+ { C_STRING_WITH_LEN("char(16)") },
{NULL, 0}
},
{
- {(char *) STRING_WITH_LEN("Select_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Select_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Insert_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Insert_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Update_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Update_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Delete_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Delete_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Create_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Create_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Drop_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Drop_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Grant_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Grant_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("References_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("References_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Index_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Index_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Alter_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Alter_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Create_tmp_table_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Create_tmp_table_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Lock_tables_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Lock_tables_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Create_view_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Create_view_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Show_view_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Show_view_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Create_routine_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Create_routine_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Alter_routine_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Alter_routine_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Execute_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Execute_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Event_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Event_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
},
{
- {(char *) STRING_WITH_LEN("Trigger_priv")},
- {(char *) STRING_WITH_LEN("enum('N','Y')")},
- {(char *) STRING_WITH_LEN("utf8")}
+ { C_STRING_WITH_LEN("Trigger_priv") },
+ { C_STRING_WITH_LEN("enum('N','Y')") },
+ { C_STRING_WITH_LEN("utf8") }
}
};
--- 1.345/sql/sql_base.cc 2006-08-23 16:48:53 +04:00
+++ 1.346/sql/sql_base.cc 2006-08-23 16:48:53 +04:00
@@ -634,6 +634,7 @@ TABLE_SHARE *get_cached_table_share(cons
static void close_handle_and_leave_table_as_lock(TABLE *table)
{
TABLE_SHARE *share, *old_share= table->s;
+ char *key_buff;
MEM_ROOT *mem_root= &table->mem_root;
DBUG_ENTER("close_handle_and_leave_table_as_lock");
@@ -642,20 +643,14 @@ static void close_handle_and_leave_table
This has to be done to ensure that the table share is removed from
the table defintion cache as soon as the last instance is removed
*/
- if ((share= (TABLE_SHARE*) alloc_root(mem_root, sizeof(*share))))
+ if (multi_alloc_root(mem_root,
+ &share, sizeof(*share),
+ &key_buff, old_share->table_cache_key.length,
+ NULL))
{
bzero((char*) share, sizeof(*share));
- share->db.str= memdup_root(mem_root, old_share->db.str,
- old_share->db.length+1);
- share->db.length= old_share->db.length;
- share->table_name.str= memdup_root(mem_root,
- old_share->table_name.str,
- old_share->table_name.length+1);
- share->table_name.length= old_share->table_name.length;
- share->table_cache_key.str= memdup_root(mem_root,
- old_share->table_cache_key.str,
- old_share->table_cache_key.length);
- share->table_cache_key.length= old_share->table_cache_key.length;
+ share->set_table_cache_key(key_buff, old_share->table_cache_key.str,
+ old_share->table_cache_key.length);
share->tmp_table= INTERNAL_TMP_TABLE; // for intern_close_table()
}
@@ -1603,28 +1598,18 @@ bool rename_temporary_table(THD* thd, TA
const char *table_name)
{
char *key;
+ uint key_length;
TABLE_SHARE *share= table->s;
TABLE_LIST table_list;
- uint db_length, table_length;
DBUG_ENTER("rename_temporary_table");
- if (!(key=(char*) alloc_root(&share->mem_root,
- (uint) (db_length= strlen(db))+
- (uint) (table_length= strlen(table_name))+6+4)))
+ if (!(key=(char*) alloc_root(&share->mem_root, MAX_DBKEY_LENGTH)))
DBUG_RETURN(1); /* purecov: inspected */
table_list.db= (char*) db;
table_list.table_name= (char*) table_name;
- share->db.str= share->table_cache_key.str= key;
- share->db.length= db_length;
- share->table_cache_key.length= create_table_def_key(thd, key,
- &table_list, 1);
- /*
- Here we use the fact that table_name is stored as the second component
- in the 'key' (after db_name), where components are separated with \0
- */
- share->table_name.str= key+db_length+1;
- share->table_name.length= table_length;
+ key_length= create_table_def_key(thd, key, &table_list, 1);
+ share->set_table_cache_key(key, key_length);
DBUG_RETURN(0);
}
@@ -1749,10 +1734,7 @@ bool reopen_name_locked_table(THD* thd,
{
TABLE *table= table_list->table;
TABLE_SHARE *share;
- char *db= table_list->db;
char *table_name= table_list->table_name;
- char key[MAX_DBKEY_LENGTH];
- uint key_length;
TABLE orig_table;
DBUG_ENTER("reopen_name_locked_table");
@@ -1762,7 +1744,6 @@ bool reopen_name_locked_table(THD* thd,
DBUG_RETURN(TRUE);
orig_table= *table;
- key_length=(uint) (strmov(strmov(key,db)+1,table_name)-key)+1;
if (open_unireg_entry(thd, table, table_list, table_name,
table->s->table_cache_key.str,
--- 1.362/sql/sql_show.cc 2006-08-23 16:48:53 +04:00
+++ 1.363/sql/sql_show.cc 2006-08-23 16:48:53 +04:00
@@ -2171,7 +2171,7 @@ LEX_STRING *make_lex_string(THD *thd, LE
/* INFORMATION_SCHEMA name */
-LEX_STRING information_schema_name= {(char*)"information_schema", 18};
+LEX_STRING information_schema_name= { C_STRING_WITH_LEN("information_schema")};
/* This is only used internally, but we need it here as a forward reference */
extern ST_SCHEMA_TABLE schema_tables[];
@@ -3212,10 +3212,10 @@ static my_bool iter_schema_engines(THD *
if (!(wild && wild[0] &&
wild_case_compare(scs, plugin->name.str,wild)))
{
- LEX_STRING state[2]= {{(char*) STRING_WITH_LEN("ENABLED")},
- {(char*) STRING_WITH_LEN("DISABLED")}};
- LEX_STRING yesno[2]= {{(char*) STRING_WITH_LEN("NO")},
- {(char*) STRING_WITH_LEN("YES")}};
+ LEX_STRING state[2]= {{ C_STRING_WITH_LEN("ENABLED") },
+ { C_STRING_WITH_LEN("DISABLED") }};
+ LEX_STRING yesno[2]= {{ C_STRING_WITH_LEN("NO") },
+ { C_STRING_WITH_LEN("YES") }};
LEX_STRING *tmp;
restore_record(table, s->default_values);
--- 1.240/sql/table.cc 2006-08-23 16:48:53 +04:00
+++ 1.241/sql/table.cc 2006-08-23 16:48:53 +04:00
@@ -93,6 +93,7 @@ TABLE_SHARE *alloc_table_share(TABLE_LIS
{
MEM_ROOT mem_root;
TABLE_SHARE *share;
+ char *key_buff, *path_buff;
char path[FN_REFLEN];
uint path_length;
DBUG_ENTER("alloc_table_share");
@@ -103,22 +104,17 @@ TABLE_SHARE *alloc_table_share(TABLE_LIS
table_list->db,
table_list->table_name, "", 0);
init_sql_alloc(&mem_root, TABLE_ALLOC_BLOCK_SIZE, 0);
- if ((share= (TABLE_SHARE*) alloc_root(&mem_root,
- sizeof(*share) + key_length +
- path_length +1)))
+ if (multi_alloc_root(&mem_root,
+ &share, sizeof(*share),
+ &key_buff, key_length,
+ &path_buff, path_length + 1,
+ NULL))
{
bzero((char*) share, sizeof(*share));
- share->table_cache_key.str= (char*) (share+1);
- share->table_cache_key.length= key_length;
- memcpy(share->table_cache_key.str, key, key_length);
- /* Use the fact the key is db/0/table_name/0 */
- share->db.str= share->table_cache_key.str;
- share->db.length= strlen(share->db.str);
- share->table_name.str= share->db.str + share->db.length + 1;
- share->table_name.length= strlen(share->table_name.str);
+ share->set_table_cache_key(key_buff, key, key_length);
- share->path.str= share->table_cache_key.str+ key_length;
+ share->path.str= path_buff;
share->path.length= path_length;
strmov(share->path.str, path);
share->normalized_path.str= share->path.str;
--- 1.149/sql/table.h 2006-08-23 16:48:53 +04:00
+++ 1.150/sql/table.h 2006-08-23 16:48:53 +04:00
@@ -138,7 +138,16 @@ typedef struct st_table_share
CHARSET_INFO *table_charset; /* Default charset of string fields */
MY_BITMAP all_set;
- /* A pair "database_name\0table_name\0", widely used as simply a db name */
+ /*
+ Key which is used for looking-up table in table cache and in the list
+ of thread's temporary tables. Has the form of:
+ "database_name\0table_name\0" + optional part for temporary tables.
+
+ Note that all three 'table_cache_key', 'db' and 'table_name' members
+ must be set (and be non-zero) for tables in table cache. They also
+ should correspond to each other.
+ To ensure this one can use set_table_cache() methods.
+ */
LEX_STRING table_cache_key;
LEX_STRING db; /* Pointer to db */
LEX_STRING table_name; /* Table name (for open) */
@@ -223,6 +232,60 @@ typedef struct st_table_share
uint part_state_len;
handlerton *default_part_db_type;
#endif
+
+
+ /*
+ Set share's table cache key and update its db and table name appropriately.
+
+ SYNOPSIS
+ set_table_cache_key()
+ key_buff Buffer with already built table cache key to be
+ referenced from share.
+ key_length Key length.
+
+ NOTES
+ Since 'key_buff' buffer will be referenced from share it should has same
+ life-time as share itself.
+ This method automatically ensures that TABLE_SHARE::table_name/db have
+ appropriate values by using table cache key as their source.
+ */
+
+ void set_table_cache_key(char *key_buff, uint key_length)
+ {
+ table_cache_key.str= key_buff;
+ table_cache_key.length= key_length;
+ /*
+ Let us use the fact that the key is "db/0/table_name/0" + optional
+ part for temporary tables.
+ */
+ db.str= table_cache_key.str;
+ db.length= strlen(db.str);
+ table_name.str= db.str + db.length + 1;
+ table_name.length= strlen(table_name.str);
+ }
+
+
+ /*
+ Set share's table cache key and update its db and table name appropriately.
+
+ SYNOPSIS
+ set_table_cache_key()
+ key_buff Buffer to be used as storage for table cache key
+ (should be at least key_length bytes).
+ key Value for table cache key.
+ key_length Key length.
+
+ NOTE
+ Since 'key_buff' buffer will be used as storage for table cache key
+ it should has same life-time as share itself.
+ */
+
+ void set_table_cache_key(char *key_buff, const char *key, uint key_length)
+ {
+ memcpy(key_buff, key, key_length);
+ set_table_cache_key(key_buff, key_length);
+ }
+
} TABLE_SHARE;
--- 1.102/sql/sql_view.cc 2006-08-23 16:48:53 +04:00
+++ 1.103/sql/sql_view.cc 2006-08-23 16:48:53 +04:00
@@ -25,7 +25,7 @@
#define MD5_BUFF_LENGTH 33
-const LEX_STRING view_type= { (char*) STRING_WITH_LEN("VIEW") };
+const LEX_STRING view_type= { C_STRING_WITH_LEN("VIEW") };
static int mysql_register_view(THD *thd, TABLE_LIST *view,
enum_view_create_mode mode);
@@ -581,40 +581,40 @@ static const int num_view_backups= 3;
parse()
*/
static File_option view_parameters[]=
-{{{(char*) STRING_WITH_LEN("query")},
+{{{ C_STRING_WITH_LEN("query")},
offsetof(TABLE_LIST, query),
FILE_OPTIONS_ESTRING},
- {{(char*) STRING_WITH_LEN("md5")},
+ {{ C_STRING_WITH_LEN("md5")},
offsetof(TABLE_LIST, md5),
FILE_OPTIONS_STRING},
- {{(char*) STRING_WITH_LEN("updatable")},
+ {{ C_STRING_WITH_LEN("updatable")},
offsetof(TABLE_LIST, updatable_view),
FILE_OPTIONS_ULONGLONG},
- {{(char*) STRING_WITH_LEN("algorithm")},
+ {{ C_STRING_WITH_LEN("algorithm")},
offsetof(TABLE_LIST, algorithm),
FILE_OPTIONS_ULONGLONG},
- {{(char*) STRING_WITH_LEN("definer_user")},
+ {{ C_STRING_WITH_LEN("definer_user")},
offsetof(TABLE_LIST, definer.user),
FILE_OPTIONS_STRING},
- {{(char*) STRING_WITH_LEN("definer_host")},
+ {{ C_STRING_WITH_LEN("definer_host")},
offsetof(TABLE_LIST, definer.host),
FILE_OPTIONS_STRING},
- {{(char*) STRING_WITH_LEN("suid")},
+ {{ C_STRING_WITH_LEN("suid")},
offsetof(TABLE_LIST, view_suid),
FILE_OPTIONS_ULONGLONG},
- {{(char*) STRING_WITH_LEN("with_check_option")},
+ {{ C_STRING_WITH_LEN("with_check_option")},
offsetof(TABLE_LIST, with_check),
FILE_OPTIONS_ULONGLONG},
- {{(char*) STRING_WITH_LEN("revision")},
+ {{ C_STRING_WITH_LEN("revision")},
offsetof(TABLE_LIST, revision),
FILE_OPTIONS_REV},
- {{(char*) STRING_WITH_LEN("timestamp")},
+ {{ C_STRING_WITH_LEN("timestamp")},
offsetof(TABLE_LIST, timestamp),
FILE_OPTIONS_TIMESTAMP},
- {{(char*)STRING_WITH_LEN("create-version")},
+ {{ C_STRING_WITH_LEN("create-version")},
offsetof(TABLE_LIST, file_version),
FILE_OPTIONS_ULONGLONG},
- {{(char*) STRING_WITH_LEN("source")},
+ {{ C_STRING_WITH_LEN("source")},
offsetof(TABLE_LIST, source),
FILE_OPTIONS_ESTRING},
{{NullS, 0}, 0,
| Thread |
|---|
| • bk commit into 5.1 tree (petr:1.2281) | Petr Chardin | 23 Aug |