Contents
Part 1: Getting Started with MySQL Development
Chapter 1: MySQL and The Open Source Revolution
Is Open Source Really a Threat to Commercial Software?
Legal Issues and the GNU Manifesto
What Can You Modify in MySQL? Are There Limits?
So, Can You Modify MySQL or Not?
Guidelines for Modifying MySQL
Chapter 2: The Anatomy of a Database System
Object-Oriented Database Systems
Object-Relational Database Systems
Relational Database System Architecture
Internal Representation of Queries
Relational Database Architecture Summary
File Access via Pluggable Storage Engines
Chapter 3: A Tour of the MySQL Source Code
Understanding the Licensing Options
Handling Connections and Creating Threads
Preparing the Query for Optimization
Important Classes and Structures
Keeping an Engineering Logbook
Building the System for the First Time
Chapter 4: Test-Driven MySQL Development
Functional Testing vs. Defect Testing
Building Embedded Applications
Limitations of MySQL Embedding
Disconnecting from and Finalizing the Server
Building Embedded MySQL Applications
Compiling the Library (libmysqld)
Compiling libmysqld on Windows
Creating a Basic Embedded Server
Customer Interface (Main Form)
Administration Interface (Administration Form)
Chapter 7: Adding Functions and Commands to MySQL
Creating a User-Defined Library
Adding a New User-Defined Function
Compiling and Testing the New Native Function
Adding to the Information Schema
Chapter 8: Extending MySQL High Availability
How Does Replication Achieve High Availability?
Connecting the Slave to the Master
A Brief Tour of the Replication Source Code
Chapter 9: Developing MySQL Plugins
The RFID Authentication Plugin
Architecture of Authentication Plugins
Building the RFID Authentication Plugin
Chapter 10: Building Your Own Storage Engine
Storage Engine Development Process
A Brief Tour of a MySQL Storage Engine
Creating the Spartan Plugin Source Files
Adding the CMakeLists.txt File
Testing Stage 1 of the Spartan Engine
Updating the Spartan Source Files
Testing Stage 2 of the Spartan Engine
Stage 3: Reading and Writing Data
Updating the Spartan Source Files
Testing Stage 3 of the Spartan Engine
Stage 4: Updating and Deleting Data
Updating the Spartan Source Files
Testing Stage 4 of the Spartan Engine
Updating the Spartan Source Files
Testing Stage 5 of the Spartan Engine
Stage 6: Adding Transaction Support
Part 3: Advanced Database Internals
Chapter 11: Database System Internals
MySQL Query Execution Revisited
Getting Started Using MySQL for Experiments
The Database System Internals Experiment
Overview of the Experiment Project
Components of the Experiment Project
Chapter 12: Internal Query Representation
Implementing DBXP Query Trees in MySQL
Stubbing the DBXP_SELECT Command
Showing Details of the Query Tree
Chapter 13: Query Optimization
Heuristic Optimization Revisited
Stubbing the DBXP_SELECT Command
Important MySQL Structures and Classes
Modifications to the Existing Code
Details of the Heuristic Optimizer
Compiling and Testing the Code
Updating the DBXP SELECT Command
3.147.104.230