1.2.5主目录:sql

下一个主目录是mysql-5.0/sql。如果你记得你的使用手册,你就知道你必须把这个发音发好:ess queue。

mysql-5.0/sql上的“解析器”程序:

大小的名字发表评论  ---- ---- ------- 51326 sql_lex。Cc lexer 230026 sql_yacc。Yy解析器+更多*。cc程序

这是我们保存解析器的地方。换句话说,像sql_lex这样的程序。cc和sql_yacc。yy负责找出SQL命令中有什么,并决定如何处理它。

mysql-5.0/sql上的"handler"程序:

大小的名字发表评论  ---- ---- ------- 79798 ha_berkeley。Cc BDB 56687 ha_federated。Cc联邦(sql/med) 61033 ha_heap。Cc堆(内存)214046 ha_innodb。Cc innodb 47361 ha_myisam。Cc myisam 14727 ha_myisammrg。Cc merge 215091 ha_ndbcluster。cc ndb

这也是我们保存处理程序的地方。现在,您应该还记得,存储引擎本身(例如myisam)是一个单独的目录。但是在这里的sql目录中,我们有一些程序负责决定调用哪个处理程序,格式化适当的参数,并检查结果。换句话说,以字母ha开头的程序是处理程序接口程序,每个存储引擎都有一个。

mysql-5.0/sql中的“语句”例程:

大小的名字发表评论  ---- ---- ------- 24212 sql_delete。cc '删除…'语句1217 sql_do. 'cc的做……22362年sql_help。cc的帮助……75331年sql_insert。cc的插入……430486年sql_select。cc的选择……130861年sql_show。cc的节目…42346年sql_update。cc的更新…' +更多sql_*。cc程序

同样在sql目录中,您将发现用于处理sql语句的每个语法组件的独立程序。这些程序的名称往往以sql_开头。因此,对于SELECT语句,检查sql_select.cc。

因此,有一些“语句”例程,如sql_delete.c、sql_load.c和sql_help.c,它们负责DELETE、LOAD DATA和HELP语句。文件名是有关所涉及的SQL语句的提示。

mysql-5.0/sql中的“语句函数”例程:

大小的名字发表评论  ---- ---- ------- 19906 sql_string。Cc字符串6152 sql_olap。Cc olap (rollup) 14241 sql_udf。Cc用户定义函数17669 sql_union。cc工会

还有语句组件的例程,如字符串或在线分析处理(目前仅指ROLLUP、用户定义函数或UNION操作符)。