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 表頭文件


參考
http://www.cnblogs.com/hustcat/archive/2009/02/26/1398896.html
或"SQLite offical document - architecture" http://www.sqlite.org/arch.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM