#2013_09_29 星期日 add by greshem
J:\portage\dev-db\mysql\mysql-4.1.22.chm
main 3441 sql/mysqld.cc int main(int argc, char **argv)
winmain /main(int argc, char **argv)
server_init();
init_server_components())
ha_init())
process_key_caches(&ha_init_key_cache);
ft_init_stopwords();
init_max_user_conn();
init_update_queries();
create_shutdown_thread();
create_maintenance_thread();
handle_connections_methods();
pthread_create
handle_connections_namedpipes, 0))
pthread_create
handle_connections_sockets
pthread_create
handle_connections_shared_memory
#==========================================================================
#root/sql/mysqld.cc
3695 extern "C" pthread_handler_decl(handle_connections_sockets,
3910 extern "C" pthread_handler_decl(handle_connections_namedpipes,arg)
4000 pthread_handler_decl(handle_connections_shared_memory,arg)
########################################################################
#服务器处理 sql 语句的查询:
pthread_handler_decl
handle_bootstrap
mysql_parse(THD *thd, char *inBuf, uint length)
#==========================================================================
#mysql_parse 的 SQL 语句的解析 也在 , handle_one_connection 函数里面
pthread_handler_decl(handle_one_connection,arg)
execute_init_command(thd, &sys_init_connect, &LOCK_sys_init_connect);
do_command(THD *thd)
dispatch_command(enum enum_server_command command, THD *thd,
mysql_parse(THD *thd, char *inBuf, uint length)
#服务器的option 服务器特性的定义 在 sqld.cc 里面的 4228 行
4228 enum options_mysqld
########################################################################
#注册 处理函数:
pthread_handler_decl
handle_delayed_insert
thr_find_all_keys
handle_one_connection
handle_bootstrap
handle_manager
signal_hand
handle_connections_sockets
kill_server_thread
handle_connections_namedpipes
handle_connections_shared_memory
handle_slave
handle_failsafe_rpl
handle_slave_io
handle_slave_sql
handle_delayed_insert
process_connection
process_launcher_messages
#==========================================================================
1351 dispatch_command(enum enum_server_command command, THD *thd,
1376 case COM_INIT_DB:
1382 mysql_change_db(thd, tmp.str))
1394 case COM_TABLE_DUMP:
1415 mysql_table_dump(thd, db, tbl_name, -1))
1419 case COM_CHANGE_USER:
1470 check_user(thd, COM_CHANGE_USER, passwd, passwd_len, db, FALSE);
1498 case COM_EXECUTE:
1500 mysql_stmt_execute(thd, packet, packet_length);
1503 case COM_LONG_DATA:
1505 mysql_stmt_get_longdata(thd, packet, packet_length);
1508 case COM_PREPARE:
1510 mysql_stmt_prepare(thd, packet, packet_length);
1513 case COM_CLOSE_STMT:
1515 mysql_stmt_free(thd, packet);
1518 case COM_RESET_STMT:
1520 mysql_stmt_reset(thd, packet);
1523 case COM_QUERY:
1561 mysql_parse(thd, packet, length);
mysql_init_query(thd, (uchar*) inBuf, length);
query_cache_send_result_to_client(thd, inBuf, length) <= 0)
yyparse((void *)thd) && ! thd->is_fatal_error)
mysql_execute_command(thd);
query_cache_end_of_result(thd);
1586 case COM_FIELD_LIST: // This isn't actually needed
1623 mysqld_list_fields(thd,&table_list,fields);
1629 case COM_QUIT:
1636 case COM_CREATE_DB: // QQ: To be removed
1652 mysql_create_db(thd, (lower_case_table_names == 2 ? alias : db),
1657 case COM_DROP_DB: // QQ: To be removed
1675 mysql_rm_db(thd, (lower_case_table_names == 2 ? alias : db),
1681 case COM_BINLOG_DUMP:
1710 case COM_REFRESH:
1717 reload_acl_and_cache(thd, options, (TABLE_LIST*) 0, NULL))
1724 case COM_SHUTDOWN:
1764 case COM_STATISTICS:
1792 case COM_PING:
1805 case COM_PROCESS_KILL:
1812 case COM_SET_OPTION:
1831 case COM_DEBUG:
1835 mysql_print_status(thd);
1839 case COM_SLEEP:
1840 case COM_CONNECT: // Impossible here
1841 case COM_TIME: // Impossible from client
1842 case COM_DELAYED_INSERT:
1843 case COM_END:
阅读(647) | 评论(0) | 转发(0) |