├── .gitignore ├── README.md ├── demo_1.1 ├── BPlusTree.c ├── BPlusTree.h ├── BPlusTreeForPager.c ├── Makefile ├── README.md ├── data.db ├── os.c ├── os.h ├── pager.c ├── pager.h ├── pcache.c ├── pcache.h ├── pcache1.c ├── run.sh ├── sqlite.h ├── sqliteint.h ├── test_BPlusTree.c ├── test_OS.c ├── test_pager.c └── unix_os.c └── documents ├── inside-sqlite.pdf ├── official_documents ├── SQLite怎样实现原子性.md └── Write-Ahead-Logging.md ├── translate_SQLite_database_system ├── Pic3.1.png ├── Pic3.2.png ├── Pic3.5.png ├── Pic3.6.png ├── Pic4.1.png ├── Pic4.2.png ├── Pic4.3.png ├── Pic4.4.png ├── Pic4.5.png ├── Pic5.1.png ├── SQLite_database_system_3.md ├── SQLite_database_system_4.md ├── SQLite_database_system_5.md └── SQLite_database_system_6.md └── translate_inside_sqlite ├── 00.TableOfContents.md ├── 01.Copyright.md ├── 1.0.Overview.md ├── 1.1.SampleApplications.md ├── 1.2.SQLiteArchitecture.md ├── 1.3.SQLiteLimitations.md ├── 2.0.DatabaseFileFormat.md ├── 2.1.DatabaseNamingConventions.md ├── 2.2.DatabaseFileStructure.md ├── 3.0.PageCacheManagement.md ├── 3.1.PagerResponsibilities.md ├── 3.2.PagerInterfaceStructure.md ├── 3.3.CacheManagement.md ├── 5.0.TableAndIndexManagement.md ├── README.md ├── images ├── chapter1 │ └── 1-1.png ├── chapter2 │ ├── Figure2-1.StructureOfAFeelist.png │ └── Table2-1.StructureOfDatabaseFileHeader.png └── chapter3 │ ├── Figure3-1.InterconnectionOfPagerSubmodules.png │ └── Figure3-2.PageCache.png └── issue.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | sqlite.xcodeproj/ 4 | 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/README.md -------------------------------------------------------------------------------- /demo_1.1/BPlusTree.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/BPlusTree.c -------------------------------------------------------------------------------- /demo_1.1/BPlusTree.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/BPlusTree.h -------------------------------------------------------------------------------- /demo_1.1/BPlusTreeForPager.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/BPlusTreeForPager.c -------------------------------------------------------------------------------- /demo_1.1/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/Makefile -------------------------------------------------------------------------------- /demo_1.1/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/README.md -------------------------------------------------------------------------------- /demo_1.1/data.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/data.db -------------------------------------------------------------------------------- /demo_1.1/os.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/os.c -------------------------------------------------------------------------------- /demo_1.1/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/os.h -------------------------------------------------------------------------------- /demo_1.1/pager.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/pager.c -------------------------------------------------------------------------------- /demo_1.1/pager.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/pager.h -------------------------------------------------------------------------------- /demo_1.1/pcache.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/pcache.c -------------------------------------------------------------------------------- /demo_1.1/pcache.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/pcache.h -------------------------------------------------------------------------------- /demo_1.1/pcache1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/pcache1.c -------------------------------------------------------------------------------- /demo_1.1/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/run.sh -------------------------------------------------------------------------------- /demo_1.1/sqlite.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/sqlite.h -------------------------------------------------------------------------------- /demo_1.1/sqliteint.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/sqliteint.h -------------------------------------------------------------------------------- /demo_1.1/test_BPlusTree.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/test_BPlusTree.c -------------------------------------------------------------------------------- /demo_1.1/test_OS.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/test_OS.c -------------------------------------------------------------------------------- /demo_1.1/test_pager.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/test_pager.c -------------------------------------------------------------------------------- /demo_1.1/unix_os.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/demo_1.1/unix_os.c -------------------------------------------------------------------------------- /documents/inside-sqlite.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/inside-sqlite.pdf -------------------------------------------------------------------------------- /documents/official_documents/SQLite怎样实现原子性.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/official_documents/SQLite怎样实现原子性.md -------------------------------------------------------------------------------- /documents/official_documents/Write-Ahead-Logging.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/official_documents/Write-Ahead-Logging.md -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic3.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic3.1.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic3.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic3.2.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic3.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic3.5.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic3.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic3.6.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic4.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic4.1.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic4.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic4.2.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic4.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic4.3.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic4.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic4.4.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic4.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic4.5.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/Pic5.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/Pic5.1.png -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/SQLite_database_system_3.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/SQLite_database_system_3.md -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/SQLite_database_system_4.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/SQLite_database_system_4.md -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/SQLite_database_system_5.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/SQLite_database_system_5.md -------------------------------------------------------------------------------- /documents/translate_SQLite_database_system/SQLite_database_system_6.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_SQLite_database_system/SQLite_database_system_6.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/00.TableOfContents.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/00.TableOfContents.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/01.Copyright.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/01.Copyright.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/1.0.Overview.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/1.0.Overview.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/1.1.SampleApplications.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/1.1.SampleApplications.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/1.2.SQLiteArchitecture.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/1.2.SQLiteArchitecture.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/1.3.SQLiteLimitations.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/1.3.SQLiteLimitations.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/2.0.DatabaseFileFormat.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/2.0.DatabaseFileFormat.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/2.1.DatabaseNamingConventions.md: -------------------------------------------------------------------------------- 1 | ### 2.1 数据库命名规范 2 | -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/2.2.DatabaseFileStructure.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/2.2.DatabaseFileStructure.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/3.0.PageCacheManagement.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/3.0.PageCacheManagement.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/3.1.PagerResponsibilities.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/3.1.PagerResponsibilities.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/3.2.PagerInterfaceStructure.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/3.2.PagerInterfaceStructure.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/3.3.CacheManagement.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/3.3.CacheManagement.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/5.0.TableAndIndexManagement.md: -------------------------------------------------------------------------------- 1 | ## 第五章 表和索引第管理 2 | -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/README.md -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/images/chapter1/1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/images/chapter1/1-1.png -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/images/chapter2/Figure2-1.StructureOfAFeelist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/images/chapter2/Figure2-1.StructureOfAFeelist.png -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/images/chapter2/Table2-1.StructureOfDatabaseFileHeader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/images/chapter2/Table2-1.StructureOfDatabaseFileHeader.png -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/images/chapter3/Figure3-1.InterconnectionOfPagerSubmodules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/images/chapter3/Figure3-1.InterconnectionOfPagerSubmodules.png -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/images/chapter3/Figure3-2.PageCache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/images/chapter3/Figure3-2.PageCache.png -------------------------------------------------------------------------------- /documents/translate_inside_sqlite/issue.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangmingzi/how-to-implement-a-DB-like-sqlite/HEAD/documents/translate_inside_sqlite/issue.md --------------------------------------------------------------------------------