Commit 31b61445 authored by peterg@mysql.com's avatar peterg@mysql.com

Updated PeterG's internals documentation per comments from

Monty; clarified differences between the MySQL library 
directories.
parent e600aa8c
...@@ -3715,25 +3715,33 @@ sending messages, the client part merely calls the server part. ...@@ -3715,25 +3715,33 @@ sending messages, the client part merely calls the server part.
The libmysql files are split into three directories: libmysql (this The libmysql files are split into three directories: libmysql (this
one), libmysql_r (the next one), and libmysqld (the next one after one), libmysql_r (the next one), and libmysqld (the next one after
that). It may be that the original intention was that the libmysql that).
directory would hold the "client part" files, and the libmysqld @*@*
directory would hold the "server part" files.
The "library of mysql" has some client-connection
modules. For example, as described in an earlier
section of this manual, there is a discussion of
libmysql/libmysql.c which sends packets from the
client to the server. Many of the entries in the
libmysql directory (and in the following libmysqld
directory) are 'symlinks' on Linux, that is, they
are in fact pointers to files in other directories.
@*@* @*@*
The program files on this directory are: The program files on this directory are:
@itemize @bullet @itemize @bullet
@item @item
conf_to_src.c -- has to do with charsets conf_to_src.c -- has to do with charsets
@item @item
dll.c -- initialization of the dll library dll.c -- initialization of the dll library
@item @item
errmsg.c -- English error messages, compare \mysys\errors.c errmsg.c -- English error messages, compare \mysys\errors.c
@item @item
get_password.c -- get password get_password.c -- get password
@item @item
libmysql.c -- the code that implements the MySQL API, i.e. the functions a client that wants to connect to MySQL will call libmysql.c -- the code that implements the MySQL API, i.e. the functions a client that wants to connect to MySQL will call
@item @item
manager.c -- initialize/connect/fetch with MySQL manager manager.c -- initialize/connect/fetch with MySQL manager
@end itemize @end itemize
@*@* @*@*
...@@ -3742,8 +3750,7 @@ manager.c -- initialize/connect/fetch with MySQL manager ...@@ -3742,8 +3750,7 @@ manager.c -- initialize/connect/fetch with MySQL manager
The MySQL Library, Part 2. The MySQL Library, Part 2.
@*@* @*@*
This is a continuation of the libmysql directory. There is only one There is only one file here, used to build a thread-safe libmysql library:
file here, used to build a thread-safe libmysql library:
@itemize @bullet @itemize @bullet
@item @item
makefile.am makefile.am
...@@ -3755,8 +3762,9 @@ makefile.am ...@@ -3755,8 +3762,9 @@ makefile.am
The MySQL library, Part 3. The MySQL library, Part 3.
@*@* @*@*
This is a continuation of the libmysql directory and contains the MySQL The Embedded MySQL Server Library. The product of libmysqld
Server as an embeddable library. The program files on this directory is not a client/server affair, but a library. There is a wrapper
to emulate the client calls. The program files on this directory
are: are:
@itemize @bullet @itemize @bullet
@item @item
...@@ -3771,9 +3779,9 @@ lib_vio.c -- Emulate the vio directory's communication buffer ...@@ -3771,9 +3779,9 @@ lib_vio.c -- Emulate the vio directory's communication buffer
Some user-contributed manual pages Some user-contributed manual pages
@*@* @*@*
These are user-contributed "man" (manual) pages in a special markup These are user-contributed "man" (manual) pages in a special markup
format. The format is described in a document with a heading like format. The format is described in a document with a heading like
"man page for man" or "macros to format man pages" which you can find "man page for man" or "macros to format man pages" which you can find
in a Linux directory or on the Internet. in a Linux directory or on the Internet.
@*@* @*@*
...@@ -3785,23 +3793,17 @@ The MyISAM table handler. ...@@ -3785,23 +3793,17 @@ The MyISAM table handler.
The C files in this subdirectory come in six main groups: The C files in this subdirectory come in six main groups:
@itemize @bullet @itemize @bullet
@item @item
ft*.c files -- ft stands for "Full Text", code contributed by Sergei ft*.c files -- ft stands for "Full Text", code contributed by Sergei Golubchik
Golubchik
@item @item
mi*.c files -- mi stands for "My Isam", these are the main programs mi*.c files -- mi stands for "My Isam", these are the main programs for Myisam
for Myisam
@item @item
myisam*.c files -- for example, "myisamchk" utility routine myisam*.c files -- for example, "myisamchk" utility routine functions source
functions source
@item @item
rt*.c files -- rt stands for "rtree", some code was written by rt*.c files -- rt stands for "rtree", some code was written by Alexander Barkov
Alexander Barkov
@item @item
sp*.c files -- sp stands for "spatial", some code was written by sp*.c files -- sp stands for "spatial", some code was written by Ramil Kalimullin
Ramil Kalimullin
@item @item
sort.c -- this is a single file that sorts keys for index-create sort.c -- this is a single file that sorts keys for index-create purposes
purposes
@end itemize @end itemize
@*@* @*@*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment