Skip to content

abin2017/simple-sqlite

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMake

Simple SQLite Backend

This repository is to understand the basic backend implementation of SQLite database. Codes are extracted from SQLite 2.5.0 version and initial implementation may have changed. Here, testing codes are added into the test directory and all SQLite implementation are included into the core directory. Tests included to test VFS, Pager and Btree functionality.

Reading materials

Introduction to the indexing and Btree

IMAGE ALT TEXT HERE

Compile and running instructions for Unix

  1. Take a clone of this project into your local folder
    git clone https://github.com/madushadhanushka/simple-sqlite.git
  2. Move inside the repository
    cd simple-sqlite
  3. Build the project with cmake
    cmake -DCMAKE_BUILD_TYPE=Debug
  4. Build with make
    make
  5. Run test
    ./simple_sqlite

Use as your own Paging library

You can use paging functionality to create your own file accessing implementation. You can find out sample usecase in pager.c.

Open pager with the given file name
int sqlitepager_open(Pager **ppPager,const char *zFilename,int nPage,int nEx);

Get page specified by the page number
int sqlitepager_get(Pager *pPager, Pgno pgno, void **ppPage);

Start to write data into a page specified in pData
int sqlitepager_write(void *pData);

Commit page changes into the file
int sqlitepager_commit(Pager*);

Close the connection to the file
int sqlitepager_close(Pager *pPager);

Contribute!

If you see somthing wrong, Inclomplete content or improvement, you are welcome to create issue or send pull request to this repository in order to improve the code quality and the readability.

Following are the top contributors of this repository. Keep coding! 👨🏻‍💻👩🏻‍💻

About

Code reading for sqlite backend

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.7%
  • CMake 0.3%