/*****************************************************************//** Convert an SQL identifier to the MySQL system_charset_info (UTF-8) and quote it if needed. @return pointer to the end of buf */ static char* innobase_convert_identifier ( /*========================*/ char* buf, /*!< out: buffer for converted identifier */ ulint buflen, /*!< in: length of buf, in bytes */ const char * id, /*!< in: identifier to convert */ ulint idlen, /*!< in: length of id, in bytes */ void* thd, /*!< in: MySQL connection thread, or NULL */ ibool file_id) /*!< in: TRUE=id is a table or database name; FALSE=id is an UTF-8 string */
/*****************************************************************//** Convert a table or index name to the MySQL system_charset_info (UTF-8) and quote it if needed. @return pointer to the end of buf */ extern "C" UNIV_INTERN char* innobase_convert_name ( /*==================*/ char* buf, /*!< out: buffer for converted identifier */ ulint buflen, /*!< in: length of buf, in bytes */ const char * id, /*!< in: identifier to convert */ ulint idlen, /*!< in: length of id, in bytes */ void* thd, /*!< in: MySQL connection thread, or NULL */ ibool table_id) /*!< in: TRUE=id is a table or database name; FALSE=id is an index name */
ha_innodb.cc:6269 调用innodb_convert_identifier函数 /*****************************************************************//** Creates a table definition to an InnoDB database. */ static create_table_def ( /*=============*/ trx_t* trx, /*!< in: InnoDB transaction handle */ TABLE* form, /*!< in: information on table columns and indexes */ const char * table_name, /*!< in: table name */ const char * path_of_temp_table, /*!< in: if this is a table explicitly created by the user with the TEMPORARY keyword, then this parameter is the dir path where the table should be placed if we create an .ibd file for it (no .ibd extension in the path, though); otherwise this is NULL */ ulint flags) /*!< in: table flags */