frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Tell HN: SQLite's lower() only lowercases ASCII letters

3•prmph•1h ago
Remember this the next time someone suggests that SQLite is almost as good as (or even, cough, better than) PostgreSQL for production use.

I was bit by this today while busily engaged in some related work on my web app project. What the heck?!

Comments

eesmith•1h ago
https://sqlite.org/lang_corefunc.html#lower

"The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. The default built-in lower() function works for ASCII characters only. To do case conversions on non-ASCII characters, load the ICU extension."

FAQ item (18) Case-insensitive matching of Unicode characters does not work, at https://sqlite.org/faq.html :

"The default configuration of SQLite only supports case-insensitive comparisons of ASCII characters. The reason for this is that doing full Unicode case-insensitive comparisons and case conversions requires tables and logic that would nearly double the size of the SQLite library. The SQLite developers reason that any application that needs full Unicode case support probably already has the necessary tables and functions and so SQLite should not take up space to duplicate this ability.

"Instead of providing full Unicode case support by default, SQLite provides the ability to link against external Unicode comparison and conversion routines. The application can overload the built-in NOCASE collating sequence (using sqlite3_create_collation()) and the built-in like(), upper(), and lower() functions (using sqlite3_create_function()). The SQLite source code includes an "ICU" extension that does these overloads. Or, developers can write their own overloads based on their own Unicode-aware comparison routines already contained within their project."

prmph•55m ago
All these are cope-outs. None of the stated reasons make much sense to me.

If I am distributing an app that uses the installed SQLite, you expect me to build a special version of SQLite and bundle it with my app?? Or require some weird extensions?

Unicode is about 300,000 characters at most.

eesmith•38m ago
How are you distributing SQLite now?

That is, do you compile and distribute the version from sqlite.org or do you depend on someone else to package it for you?

If the former, then change the compile flags.

If the latter, isn't the problem that your distro/packaging provider didn't enable the flags you wanted? Complain to them.

As a quick look, I see https://github.com/karlb/sqlite-icu claims "includes a loadable icu extension module for sqlite. This allows other python packages to use this extension without requiring dependencies outside of the python ecosystem". I've never tried it.

There are also alternate sqlite bindings for Python, like https://github.com/coleifer/cysqlite .

rurban•8m ago
Then they should look at my foldcase and lower case table generator at https://github.com/rurban/Unicode-Towctrans/

3336 bytes for the case tables are not comparable to the ICU mess, and easily shippable.

Raven: A Windows your apps recognize

https://useraven.org/
1•LelouBil•53s ago•0 comments

Independent Front End UI Engine

https://hygular.com
1•thebadalzada•2m ago•0 comments

Homebrew 68000 computer with a PCI bus

https://maniek86.xyz/projects/homebrew_m68k_pci.php
2•andrewstuart•4m ago•0 comments

NichiHab Android app blocker with Gemini AI task verification

https://github.com/alepoll/NichiHab
1•alepoll•4m ago•0 comments

UK Green party drops longstanding opposition to nuclear power

https://www.theguardian.com/politics/2026/oct/05/green-party-nuclear-power-policy
1•mpweiher•5m ago•0 comments

Hackers hijack Egypt highway billboard and Malaysian screens to show porn

https://www.cairoreport.org/p/egypt-brazil-iraq-billboard-hack
1•entryleveljobsc•6m ago•0 comments

AI Data Centers Could Erase 15 Years of America's Climate Progress by 2030

https://www.gadgetreview.com/ai-data-centers-could-erase-15-years-of-americas-climate-progress-by...
2•entryleveljobsc•8m ago•0 comments

French youth protests spread to Germany

https://www.upi.com/Top_News/World-News/2026/10/31/germany-france-youth-protests/2071793465114/
2•Betelbuddy•9m ago•0 comments

Dollars, for 80 Cents

https://dollarsforless.com/
1•CPLX•11m ago•0 comments

Ask HN: I'd like to request Microsoft open source Windows XP

1•fosco•12m ago•1 comments

The She-Wolves of Jülich

https://www.historytoday.com/archive/history-matters/she-wolves-julich
1•Thevet•13m ago•0 comments

Current Practices in Software Development (1984)

https://archive.org/details/currentpractices0000king
1•turtleyacht•13m ago•1 comments

I've been building a bookmark manager (note-taking app) manually for 3 years

https://metaessen.com/
1•lilerjee•14m ago•1 comments

The Marathon Is as Popular as Ever. It Remains Inaccessible to Many

https://www.nytimes.com/2026/10/31/nyregion/nyc-marathon-price.html
1•pretext•14m ago•0 comments

Ask HN: Is AI destroying public online community as a protective moat?

2•AbstractH24•17m ago•0 comments

Doctors in Ukraine Try Treating Infections Like Biological Warfare Attacks

https://www.nytimes.com/2026/10/31/science/ukraine-soldiers-infection-treatment.html
1•pretext•17m ago•0 comments

The Parents Who Are Letting Their Kids Drink

https://www.wsj.com/lifestyle/relationships/the-parents-taking-a-more-lenient-approach-to-teen-dr...
1•bookofjoe•18m ago•1 comments

OpenAI slashes funding target by $10B amid tech rout, FT reports

https://www.reuters.com/business/openai-cuts-funding-target-by-10-billion-ft-reports-2026-10-31/
2•thanhhaimai•18m ago•1 comments

Amazon sends chills through its workforce with mixed message memo about AI use

https://www.theregister.com/ai-and-ml/2026/10/31/amazon-sends-chills-through-its-workforce-with-m...
3•Logans_Run•21m ago•0 comments

Show HN: I made a game about the 3k-year evolution of Chinese characters

https://chinese.vedranb.com/
2•vedran•24m ago•0 comments

Copyright Office is restoring copyright to something you have to work to get

https://pluralistic.net/2026/10/31/burn-berne/#unvictored
3•beardyw•26m ago•0 comments

How Binance's $6.3B Hack Went Down

https://www.nytimes.com/2026/10/31/technology/binance-hack-crypto-north-korea.html
1•pretext•26m ago•0 comments

The main thread is the wrong place for a data grid

https://tobiasuhlig.medium.com/the-main-thread-is-the-wrong-place-for-a-data-grid-07a5949dd2b2
1•tobiu•28m ago•0 comments

"Quite Terrible": Why OpenAI Thinks Your PC Has Too Much RAM – Cold Logic

https://2tinteractive.com/watch/shows/cold-logic/
2•LebToki•28m ago•0 comments

NASA-Funded Study Details One of Oldest Mars Meteorites Ever Found

https://www.nasa.gov/solar-system/planets/mars/nasa-funded-study-details-one-of-oldest-mars-meteo...
1•gmays•29m ago•0 comments

Cheaper AI inference is making it harder to profit from renting out compute

https://www.tomshardware.com/tech-industry/artificial-intelligence/firm-that-lets-you-rent-out-yo...
1•zomtorg•29m ago•0 comments

I'm a Proton employee and I'm breaking my silence

https://www.reddit.com/r/ProtonMail/comments/1xkezig/im_a_proton_employee_and_im_breaking_my_sile...
3•LLcolD•29m ago•1 comments

How to benchmark mixed-GPU training without fooling yourself

https://nodeox.com/blog/benchmark-mixed-gpu-training
1•dvoronko•30m ago•0 comments

Is writing your own streaming engine a bad idea?

https://almostintuitive.com/docs/technical/building-our-own-streaming-engine/
1•legothief•32m ago•0 comments

Kioku – Modern Incremental Reading App / SuperMemo Replacement

https://kiokuweb.com/
2•rajlego•36m ago•0 comments