learndb-py

Learning and science

database education

SHOW HN2023

371points
77comments
#97of 3,109 in 2023
Top 4%of 2023 by points

How HN took it

DebatedReal support and real criticism

8 positive, 11 neutral or asking, 0 mixed, 9 critical, out of 28 comments about the project. Thread score +0.16.

Idea: 4 for, 6 againstDesign: 1 for, 2 againstDocs: 2 for, 1 againstExecution: 1 for, 0 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Readable code and good documentation

    From 3 comments
    • First, great project. Second, the code is very readable. Finally thank you for excellent comments.
      indymike on HN
    • The documentation is excellent.
      xjsjxjsjsh on HN
    • This is very nice! SQLite is very hard to read, but this one is actually quite comprehensible. Especially the VM part:…
      flakiness on HN
  • Good learning project for databases and Python

    From 3 comments
    • Thank you for sharing My perspective is that writing this kind of system in a language such as Python is actually a great thing because for myself Python is more widely readable…
      samsquire on HN
    • This is fantastic, and seems like a great way for someone (me) to learn DS&A better. I can explain how a B+tree works, but if you asked me to code it, I’d freeze up. I love…
      sgarland on HN
    • Nice! it is good to see past blind spots e.g. "you must write this kind of app in this kind of language, pure Python is high level it is only for glue". I wouldn't have thought…
      quickthrower2 on HN

Objections

  • Python unsuitable for serious database work (concurrency, memory layout)

    From 2 comments
    • Not even close. The real problems you will have to solve when working with a database anyone would want to use are, for example: * Memory layout of the buffers used to write /…
      crabbone on HN
    • I know Python, but little C. I don’t recommend writing a DB in Python. So much of DB development is dealing with race conditions and consistency. Python files require an…
      pyuser583 on HN
  • Calling it a SQLite clone is misleading

    From 2 comments
    • Perhaps a more accurate claim would be "SQLite inspired". Calling it a clone is misleading. Mad props to the author. Many Python programmers never had proper training in computer…
      keithalewis on HN
    • Just trying to encourage clear and accurate communication. I agree with your first sentence. The only thing unfair is the author claiming it is a SQLite clone. It isn't, as we…
      keithalewis on HN
  • Lacks transactions and full ACID guarantees

    From 1 comment
    • Re: ACID guarantees It doesn't have a notion of atomically batching multiple statements, i.e. transaction. But beyond that, it's a single file database, which can only have a…
      spanspan on HN

Requests

  • Benchmarks

    From 1 comment
    • Kudos, i bet that was a fun and rewarding experience. I know this was never meant to be fast, but could you produce some benchmarks for shits and giggles?
      KeplerBoy on HN
  • Run SQLite test suite against it

    From 2 comments
    • This is very nice! SQLite is very hard to read, but this one is actually quite comprehensible. Especially the VM part:…
      flakiness on HN
    • How much of the SQLite test suite will pass?
      _tom_ on HN

Questions

  • Does it support JOINs?

    From 3 comments
    • Is this really a relational database if it does not have JOINs?
      rvba on HN
    • It does have joins
      spanspan on HN
    • The splash page says that Learndb supports the following: select, from, where, group by, having, limit, order by I dont see "JOIN" there. So either the DB doesnt support it or…
      rvba on HN
  • Does it support ACID guarantees and query optimization?

    From 1 comment
    • Does it support any ACID guarantees? Query planning/optimization? I’m not saying this to imply that it can/should. I just want to know what all was attempted besides b-trees and…
      schemescape on HN
  • How it compares to Python's sqlite3 module

    From 1 comment
    • Nice OP. How would you say this compares to the inbuilt 'sqlite3' module in Python? Is it more or less portable? Different features?
      Uptrenda on HN

Alternatives named

  • H2 (Java embedded RDBMS)

    From 2 comments
    • H2 is pretty great and fully supports JSONB and the like [1]. Full java-only RDBMS. [1]: https://www.h2database.com/html/main.html
      gabereiser on HN
    • This is why you see a community of pure Java RDBMSs (Hypersonic, H2, Derby, etc), if you don't need the big iron scale it's easier to ship/use the database or even embed it in…
      devman0 on HN
  • HSQLDB and Derby

    From 2 comments
    • This is why you see a community of pure Java RDBMSs (Hypersonic, H2, Derby, etc), if you don't need the big iron scale it's easier to ship/use the database or even embed it in…
      devman0 on HN
    • Yes. It's an interesting area, irrespective of implementation language. I had tried out one or two Java-based RDBMSes back in the day, via programs written in Java, for fun. I…
      fuzztester on HN
  • Gadfly (pure Python SQL database)

    From 1 comment
    • i used to use gadfly, aaron watters's sql database in pure python; the first release was in 01994 i'm not sure current python is capable of running it
      kragen on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/37114141)