SQLite学习(三) - SQLite源代码文件结构
生活随笔
收集整理的這篇文章主要介紹了
SQLite学习(三) - SQLite源代码文件结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQLite Version3.3.6源代碼文件結構
| ? | 文件名稱 | 大小byte | 備注 |
| API | main.c | 35414 | SQLite Library的大部分接口 |
| ? | legacy.c | 3734 | sqlite3_exec的實現 |
| ? | table.c | 5464 | the sqlite3_get_table() and sqlite3_free_table()的實現,它們是sqlite3_exec的包裝 |
| ? | preprare.c | 17983 | 主要實現sqlite3_prepare() |
| ? | ? | ? | ? |
| 分詞器部分(Tokenizer) | tokenize.c | 14495 | 分詞器的實現 |
| 語法分析器部分(Parser) | parser.c | 116917 | 分析器的實現,由Lemon實現 |
| ? | parser.h | 6847 | 分析器內部定義的關鍵字 |
| ? | ? | ? | ? |
| 代碼生成器(Code Generator) | update.c | 23878 | 處理UPDATTE語句 |
| ? | delete.c | 21978 | 處理DELETE語句 |
| ? | insert.c | 62026 | 處理INSERT語句 |
| ? | trigger.c | 29065 | 處理TRIGGER語句 |
| ? | attach.c | 15941 | 處理ATTACHT?和DEATTACH語句 |
| ? | select.c | 112084 | 處理SELECT語句 |
| ? | where.c | 75826 | 處理WHERE語句 |
| ? | vacuum.c | 11005 | 處理VACUUM語句 |
| ? | pragma.c | 34289 | 處理PRAGMA命令 |
| ? | expr.c | 73963 | 處理SQL語句中的表達式 |
| ? | auth.c | 7496 | 主要實現sqlite3_set_authorizer() |
| ? | analyze.c | 13149 | 實現ANALYZE命令 |
| ? | alter.c | 18414 | 實現ALTER TABLE功能 |
| ? | build.c | 104052 | 處理以下語法:CREATE TABLE, DROP TABLE, CREATE INDEX,DROP INDEX,creating ID lists,BEGIN TRANSACTION,COMMIT,ROLLBACK |
| ? | func.c | 34335 | 實現SQL語句的函數語句 |
| ? | date.c | 24031 | 與日期和時間轉換有關的函數 |
| ? | ? | ? | ? |
| 虛擬機(Virtual Machine) | vdbeapi.c | 23300 | 虛擬機提供上層模塊調用的API實現部分 |
| ? | vdbe.c | 143552 | 虛擬機的主要實現部分 |
| ? | vdbe.h | 5309 | 定義了VDBE的接口,VdbeOp結構體(代表一條指令) |
| ? | vdbeaux.c | 58741 | Vdbe.h的接口的實現 |
| ? | vdbeInt.h | 17595 | Vdbe.c的私有頭文件,定義了VDBE常用的數據結構:Cursor——虛擬機中使用的游標, Mem——vdbe在內部把所有的SQL值當作一個Mem數據結構來處理,Vdbe——虛擬機數據結構 |
| ? | vdbemem.c | 26375 | 操作”Mem”數據結構的函數 |
| ? | vdbefifo.c | 2927 | ? |
| ? | ? | ? | ? |
| B-Tree部分 | btree.h? | 5260 | 頭文件,定義了B-tree提供的操作接口 |
| ? | btree.c?? | 215570 | B-Tree部分的主要實現,并定義了以下數據結構:Btree——Btree handler,BtCursor——使用的游標, BtLock——鎖, BtShared——包含了一個打開的數據庫的所有信息,MemPage——文件在內存存放在該數據結構中,aCellInfo |
| ? | ? | ? | ? |
| OS Interface部分 | os.h | 18355 | 定義了為上層模塊提供的操作函數,并定義了以下數據結構: |
| ? | ? | ? | OsFile——描述一個文件 |
| ? | ? | ? | IoMethod——OsFile所支持的操作函數(對所有架構都適用的OS Interface) |
| ? | os.c | 2866 | 對IoMethod中的函數的包裝 |
| ? | os_win.c | 42975 | Windows平臺下的OS Interface |
| ? | os_unix.c | 60831 | Unix平臺下的OS Interface |
| ? | os_os2.c | 28451 | OS2平臺下的OS Interface |
| ? | ? | ? | ? |
| ? | ? | ? | ? |
| 其它部分 | utf.c | 20891 | 與UTF編碼有關的函數 |
| ? | util.c | 43575 | 一些實用函數,比如: |
| ? | ? | ? | sqlite3Malloc(),sqlite3FreeX() |
| ? | sqlite3.h | 63873 | SQLite的頭文件,定義了提供給應用使用的API和數據結構。 |
| ? | sqliteInt.h | 78886 | 定義了SQLite內部使用的接口和數據結構 |
| ? | printf.c | 29556 | 主要實現與printf有關的函數 |
| ? | random.c | 3078 | 隨機數生成 |
| ? | hash.c | 11896 | SQLite使用的hash表 |
| ? | hash.h | 4033 | Hash?表頭文件 |
總結
以上是生活随笔為你收集整理的SQLite学习(三) - SQLite源代码文件结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wince 6.0 设备管理器架构
- 下一篇: Ruby源码分析