explaingit

hawkingrei/tinysql

Analysis updated 2026-07-18 · repo last pushed 2020-05-03

Audience · developerComplexity · 4/5DormantSetup · moderate

TLDR

A hands-on course where you build a working SQL database from scratch in Go, implementing query parsing, execution planning, and data changes like a real database.

Mindmap

mindmap
  root((TinySQL))
    What it does
      Build a SQL database
      Parse SQL queries
      Plan query execution
      Handle data changes
    Tech stack
      Go
      SQL
      MySQL protocol
    Course layers
      Fundamentals
      Read-only queries
      Data-changing queries
    Use cases
      Learn database internals
      Practice systems programming
      Prep for backend roles
    Audience
      Curious developers
      Backend engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Learn how databases like PostgreSQL or MySQL parse and execute SQL queries under the hood.

USE CASE 2

Implement a query planner that decides how to efficiently run a SELECT statement.

USE CASE 3

Build the logic that handles INSERT and UPDATE queries and resolves conflicting writes.

USE CASE 4

Connect to your own working database server with a standard MySQL client after finishing the course.

What is it built with?

GoSQL

How does it compare?

hawkingrei/tinysql0verflowme/alarm-clock0verflowme/seclists
LanguageCSS
Last pushed2020-05-032022-10-032020-05-03
MaintenanceDormantDormantDormant
Setup difficultymoderateeasyeasy
Complexity4/52/51/5
Audiencedevelopervibe coderops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires solid Go skills and working through progressively harder database-internals problems.

Not specified in the explanation.

Copy-paste prompts

Prompt 1
Walk me through TinySQL's course structure in Go and help me set up the first fundamentals module.
Prompt 2
Help me implement the SQL query planner step of TinySQL that decides how to execute a SELECT with a WHERE clause.
Prompt 3
Explain how TinySQL handles conflicting writes when multiple INSERT or UPDATE queries happen at once.
Prompt 4
Show me how to connect a standard MySQL client to the database server I build by completing TinySQL.

Frequently asked questions

What is tinysql?

A hands-on course where you build a working SQL database from scratch in Go, implementing query parsing, execution planning, and data changes like a real database.

Is tinysql actively maintained?

Dormant — no commits in 2+ years (last push 2020-05-03).

What license does tinysql use?

Not specified in the explanation.

How hard is tinysql to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is tinysql for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.