简而言之,在 mysql 命令行界面中,typedesc TABLE_Julia相当于select COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA from information_schema.COLUMNS where TABLE_SCHEMA = database() and TABLE_NAME like 'TABLE_Julia'
desc我想知道我的意思是从服务器程序中的等效语句的转换发生在哪里select,因为我想实现命令,例如添加的info TABLE_Julia行为,这对应用程序开发人员来说非常方便。select COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA, COLUMN_COMMENT from information_schema.COLUMNS where TABLE_SCHEMA = database() and TABLE_NAME like 'TABLE_Julia'COLUMN_COMMENT
其实我已经改过lex.h, mysqld.cc, sql_cmd.h, sql_parse.cc,sql_yacc.yy了,结果就是和现在的输出info TABLE_Julia完全一样desc TABLE_Julia,但这还不够。
我搜索了LEX, do_select, JOIN::exec, mysql_execute_select, mysql_select, handle_select, execute_sqlcom_select, mysql_execute_command, mysql_parse, dispatch_command, do_command, do_handle_one_connection, handle_one_connection, pfs_spawn_thread,start_thread等clone。
但是,不幸的是,不走运,仍然没有任何线索。任何人请给我一些建议,谢谢。