• SQLite Version3.3.6源代码文件结构


    Version 3.3.6源代码文件结构

                                                   ——整理:hustcat 2009-2-19

    文件名称

    大小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——文件在内存存放在该数据结构中

    CellInfo

    Pager部分

    pager.h

    4161

    定义sqlite page cache子系统提供的接口

    pager.c

    127490

    Pager模块的主要实现,并定义了以下数据结构:

    PgHdr——每一个内存中的页面的页面头

    Pager——该模块中最重要的数据结构

    PgHistory

     

    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的源码读完,所以文件的归类可能有漏掉的。

  • 相关阅读:
    小条打印机输出简析
    Visual Studio离线安装
    删除“Open in Windows Terminal”右键菜单
    《新媒体营销精华:精准定位+爆款打造+匠心运营+内容变现》笔者的新书,欢迎各位粉丝上京东购买
    vue3.0 的 Composition API 的一种使用方法
    对比传统的Xilinx AMP方案和OPENAMP方案-xapp1078和ug1186【转】
    OpenAMP简介【转】
    git 用法【笔记】
    针对非对称多处理系统实现更简单的软件开发【转】
    内核探测工具systemtap简介【转】
  • 原文地址:https://www.cnblogs.com/hustcat/p/1398896.html
Copyright © 2020-2023  润新知