mysql-4.1.22_源码_分析

#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:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值