-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Aditya Bhave (adbhave) wrote:
> I am interested in learning about the internals of SQLite.

The SQLite documentation page at http://sqlite.org/docs.html contains
almost all the information you could possibly want.

> How it parses
> SQL strings, what goes on the parsing stack,

A parser generator named Lemon is used which is documented at
http://www.hwaci.com/sw/lemon/

The file containing the SQLite grammar and what actions are performed is
src/parse.y

> how it executes SQL statements etc.

A virtual machine is used since it provides an easy way to encode state
(eg between calls to sqlite3_step).  The broad principles are documented
at http://sqlite.org/vdbe.html and the machine opcodes are documented at
http://sqlite.org/opcode.html

This paper contrasts stack based vs register based virtual machines.
SQLite used to be stack based and moved to register based a few
revisions ago.  (Note that the virtual machine is not exposed to users
of SQLite so the backend is irrelevant to the user, as long as it works)

  http://www.usenix.org/events/vee05/full_papers/p153-yunhe.pdf

Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFIcwm1mOOfHg372QQRAuVbAJ9cli9pD9enCHZr8yDDWgJ9ghsvfACgyjXe
zIcyPCpKe1zu5TPKOFefbvY=
=+mJS
-----END PGP SIGNATURE-----
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to