简而言之,在 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
。
但是,不幸的是,不走运,仍然没有任何线索。任何人请给我一些建议,谢谢。