top | item 45159073

(no title)

Jabbles | 5 months ago

> poorly designed storage layer, poorly designed column formats, and a terrible SQL implementation

Is this opinion shared by others?

discuss

order

chasil|5 months ago

Dr. Hipp has said several times that nobody expected a weakly-typed database to achieve the pervasiveness that is observed with SQLite.

At the same time, strict tables address some of the concern of those coming from conventional databases.

Dates and times are a core problem to SQLite not seen elsewhere as far as I know, but this does evade UTC and constantly shifting regional time. My OS gets timezone updates every few months, and avoiding that had foresight.

Default conformance with Postel's Law is SQLite's stance, and it does seem to work with the ANSI standard.

SQLite|5 months ago

> Dr. Hipp has said several times that nobody expected a weakly-typed database to achieve the pervasiveness that is observed with SQLite.

I don't remember ever saying that. Rather, see https://sqlite.org/flextypegood.html for detailed explanation of why I think flexible typing ("weak typing" is a purgative and inaccurate label) is a useful and innovative feature, not a limitation or a bug. I am surprised at how successful SQLite has become, but if anything, the flexible typing system is a partial explanation for that success, not a cause of puzzlement.

alberth|5 months ago

While nobody expected it … it should not be unexpected.

Typically, the Lowest-Common-Denominator wins mass appeal/uasge.

By not having safety checks and even typing enforcement, SQLite caters to actually more use cases than less.

chrisweekly|5 months ago

I often forget or mix up which "Law" refers to which observation, and I'm surely not the only one. So:

Postel's Law, also known as the Robustness Principle, is a guideline in software design that states: "be conservative in what you send, be liberal in what you accept."

formerly_proven|5 months ago

SQLite probably doesn't do anything with times and dates except punting some functions to the limited libc facilities because including any proper date-time facilities would basically double the footprint of SQLite. Same for encodings and collations.

da_chicken|5 months ago

I think it's one of the reasons DuckDB has seen the popularity that it has.

benjiro|5 months ago

DuckDB is a columnar database, and columnar DBs are way better for analytics, statistics... That is its main reason for its popularity, the ability to run specific workloads that row based databases will struggle/be slower at.

Nothing to do with the posters badly formatted complained about Sqlite. By that metric DuckDB has a ton of issues that even out scale Sqlite.

qaq|5 months ago

thats a strange argument DuckDB is for OLAP and SQLite is for OLTP