[HN Gopher] Fun facts about SQLite
       ___________________________________________________________________
        
       Fun facts about SQLite
        
       Author : avinassh
       Score  : 264 points
       Date   : 2024-12-30 14:56 UTC (8 hours ago)
        
 (HTM) web link (avi.im)
 (TXT) w3m dump (avi.im)
        
       | pavel_lishin wrote:
       | I thought to myself, "surely 'insane' is a bit of hyperbole...",
       | and, no, it's not.
       | 
       | > _This is one my favorite lore. SQLite had to default prefix
       | from sqlite_ to etilqs_ when users started calling developers in
       | the middle of the night_
        
         | monktastic1 wrote:
         | In case anyone else was mildly confused by the wording, it
         | seems the author simply missed a few words: "had to _change
         | the_ default prefix from... "
        
           | avinassh wrote:
           | oops, I fixed the typo. Thank you!
        
       | jitl wrote:
       | The OP failed to mention that SQLite does have opt-in strict
       | tables that enforce types, you just need to do `CREATE TABLE name
       | (stuff TEXT) STRICT`, see
       | https://www.sqlite.org/stricttables.html
       | 
       | Like journal mode being ROLLBACK by default instead of WAL,
       | foreign key constraints being off by default, tables being lax by
       | default is part of SQLite's dedication to backwards
       | compatibility.
        
         | avinassh wrote:
         | > The OP failed to mention that SQLite does have opt-in strict
         | tables
         | 
         | I did not, but probably I did not phrase correctly:
         | 
         | > Strong typed columns are opt-in.
        
           | jitl wrote:
           | You write:
           | 
           | > 18. I hate that it doesn't have types. It's totally YOLO:
           | 
           | In the point where you say that you didn't mention STRICT
           | mode, which seems to directly address your complaint.
        
       | agilob wrote:
       | >But, unlike most databases, SQLite has a single writer model.
       | 
       | As opposed to Redis (mentioned one line above the quote) which
       | also is single-threaded?
        
       | agilob wrote:
       | One interesting fact is that for one release of SQLite the team
       | worked on lots of micro-optimisations that resulted in speed up
       | of even 50% https://sqlite-
       | users.sqlite.narkive.com/CVRvSKBs/50-faster-t...
        
         | tiffanyh wrote:
         | The perf visual, by release:
         | 
         | https://www.sqlite.org/images/sschart20221116.jpg
         | 
         | The bulk of the gains happened between 2013-2017.
        
           | didgetmaster wrote:
           | Did they stop thinking of performance gains as a priority
           | after 2017? The improvements have been very weak since then.
           | Just wondering if they ran out of low hanging fruit or if
           | they just didn't think it was important anymore.
        
             | 83457 wrote:
             | Mass adoption of SSDs may explain the change.
        
       | chrismorgan wrote:
       | > _SQLite is not open source in the legal sense, as "open source"
       | has a specific definition and requires licenses approved by the
       | Open Source Initiative (OSI)._
       | 
       | This is wrong, and _harmfully_ wrong. OSI are not the arbiters of
       | open source. Their Open Source Definition, though generally
       | useful and accepted, is not without legitimate criticism and
       | controversy. As for their _approval_ , that's a dreadful thing to
       | rely on for _any_ purpose;
       | <https://writing.kemitchell.com/2019/05/05/Rely-on-OSI.html> is a
       | good description of most of what's wrong with it (it doesn't
       | really get into the broken politics enough; but some of his other
       | articles contain more), and I like its summary: "The list of OSI-
       | approved licenses reflects OSI's practical and political history,
       | not any useful, consistently functional category of license
       | terms."
       | 
       | As for whether SQLite is open source, well, the only reason a
       | public domain dedication doesn't meet the OSD is that it's not a
       | license. It's _more_ open. In a way that is legally mildly
       | uncertain in some jurisdictions, sure, but to call it "not open
       | source in the legal sense" is just _wrong_.
        
         | mschuster91 wrote:
         | The thing is, in many corporate and government settings, OSI is
         | trusted by default as "this is open source", and anything _not_
         | explicitly covered by OSI will cause you a world of pain with
         | your legal department to get an exception.
        
           | WaxProlix wrote:
           | And yet sqlite is the most distributed database code on the
           | planet by an order of magnitude.
        
             | datavirtue wrote:
             | No one does any due diligence on software. It's a free for
             | all.
        
               | sroussey wrote:
               | It's distributed in MacOS, Chrome, Firefox, etc. I think
               | these companies do due diligence.
        
           | red_admiral wrote:
           | What part of Public Domain do these legal departments not
           | understand?
        
             | hermitdev wrote:
             | It's not that they don't understand; it's that it causes
             | more work for the lawyers, because someone has to review
             | the license if it's not one of the standard boilerplate
             | acceptable licenses.
             | 
             | I once had to go to lawyers to get a license approved on a
             | lib that went something along the lines of "this work is in
             | the public domain; do whatever the fuck you want with it,
             | just don't come crawling to me for help". I'm paraphrasing
             | from ~20-year-old memories here, but I do distinctly
             | remember the profanity. It elicited a chuckle from the
             | lawyer and something along the lines of "I wish all of
             | these were this simple".
        
             | monocasa wrote:
             | The US isn't the only jurisdiction, and public domain isn't
             | a concept in all jurisdictions.
        
               | jazzyjackson wrote:
               | But in this jurisdictions without a concept of public
               | domain, who is going to come after you for using software
               | without an explicit license?
        
               | monocasa wrote:
               | I mean, like Germany?
               | 
               | And legal departments don't really like the "but, like,
               | what's the chance they actually use us?" argument.
        
               | charrondev wrote:
               | That's not enough which is why this page exists:
               | 
               | https://www.sqlite.org/purchase/license
        
             | rcxdude wrote:
             | They understand quite well that it's not really something
             | you can just neatly place a piece of work into. Something
             | which is 'public domain' but the copyright has not actually
             | expired on is higher risk to use than something with an
             | explicit open source license.
        
         | avinassh wrote:
         | I will try to rephrase it and include links to Wikipedia and
         | OSI
         | 
         | > As for whether SQLite is open source, well, the only reason a
         | public domain dedication doesn't meet the OSD is that it's not
         | a license. It's more open.
         | 
         | That's true and I do acknowledge this in the post:
         | 
         | > Instead, SQLite is in the public domain, which means it has
         | even fewer restrictions than any open source license.
         | 
         | [1] https://en.wikipedia.org/wiki/Open_source
         | 
         | [2] https://opensource.org/blog/public-domain-is-not-open-
         | source
        
         | cryptonector wrote:
         | I'm willing to let OSI own "Open Source", cause why not (do
         | they have a trademark on "Open Source"?), but not "open
         | source". All-lowercase "open source" includes public domain, I
         | don't care what OSI says about it, while "Open Source" is
         | whatever OSI says it is, and if that does not include public
         | domain then so be it.
        
           | rad_gruchalski wrote:
           | Quite an interesting rabbit hole to explore. Apparently OSI
           | holds a US trademark for "Open Source Initiative Approved
           | License", but no trademark for "open source" by itself.
        
             | ska wrote:
             | Hardly surprising because the idiomatic usage of "open
             | source" predates OSI.
        
               | cryptonector wrote:
               | Apparently not by a lot, but it does indeed.
        
               | mbreese wrote:
               | The term definitely preceded the organization. The term
               | was in use for years before OSI was formed. And OSI was
               | clearly formed in order to provide some clarity to what
               | was meant by "open source". In other words, if there was
               | no ambiguity in the phrase "open source", OSI would never
               | have been created.
        
               | cryptonector wrote:
               | And the best way to handle this ambiguity is to use "Open
               | Source" when referring to OSI's definition, and "open
               | source" when referring to the colloquial and ill-defined
               | form.
        
           | saulpw wrote:
           | Capital letters are only useful as ECC, not direct signal.
           | (You can't pronounce them, they aren't preserved in many
           | contexts, the lay writer won't respect them, etc).
           | 
           | Your idea is like saying "Google" can be a trademark owned by
           | Alphabet but "google" is just a verb. It seems like a cute
           | linguistic hack but won't be meaningful in the public
           | discourse.
        
             | cryptonector wrote:
             | > Capital letters are only useful as ECC, not direct
             | signal. (You can't pronounce them, they aren't preserved in
             | many contexts, the lay writer won't respect them, etc).
             | 
             | In speech I clarify if and when needed, naturally.
             | 
             | > Your idea is like saying "Google" can be a trademark
             | owned by Alphabet but "google" is just a verb. It seems
             | like a cute linguistic hack but won't be meaningful in the
             | public discourse.
             | 
             | You have it exactly backwards. Descriptively "to google" is
             | a verb.
             | 
             | Descriptivism is much better than prescriptivism in natural
             | language. Sure, we need to use prescriptivism when
             | _teaching_ the language, but we do get to evolve the
             | language. That 's just how it goes and has gone for the
             | entire recorded history of mankind.
        
               | psychoslave wrote:
               | Are you trying to subtly prescribe that descriptivism is
               | better than prescriptivism? :)
        
               | cryptonector wrote:
               | A bit, yeah :)
        
             | wat10000 wrote:
             | Try pronouncing the word "Polish."
        
               | chuckadams wrote:
               | [delayed]
        
         | belter wrote:
         | You commented before reading...Unless the author updated the
         | blog in the meanwhile. Because point 6 says: "Instead, SQLite
         | is in the public domain, which means it has even fewer
         | restrictions than any open source license."
        
           | causal wrote:
           | That's the point. It should still be considered open source.
        
           | Filligree wrote:
           | Which is not a thing in my jurisdiction, and so as far as I
           | can tell it's treated as being proprietary and unlicensed.
        
             | rustc wrote:
             | Is using SQLite without buying a license [1] really illegal
             | in your jurisdiction?
             | 
             | [1]: https://www.sqlite.org/purchase/license
        
               | Filligree wrote:
               | As far as I can tell, yes. It's a grey zone, because it'd
               | fall under civil law, not criminal; so SQLite's copyright
               | owners would need to bring suit against me for it to
               | matter, which I don't believe they will.
               | 
               | However, on the face of it I have no right to use the
               | software without buying a license.
        
               | nicbn wrote:
               | Would it be possible for someone within a compatible
               | jurisdiction to mirror SQLite3 and provide it under some
               | license such that it could be used by anyone?
        
             | somat wrote:
             | This is an interesting case to me and thus my questions.
             | Don't feel you need to answer to some stranger on the
             | internet interrogating you.
             | 
             | Public domain is largely a US government concept, I think
             | the was the main reason that sqlite was put "in the public
             | domain" it started and was initially payed for as an
             | internal database for some military contract. So when Dr. H
             | wanted to release it to the public he did it in the normal
             | US government method which was public domain.
             | 
             | Would you legally be able to use nasa papers or programs?
             | these are also in the public domain.
             | 
             | A short essay on public domain, because I am feeling a bit
             | philosophic this morning.
             | 
             | As far as I know public domain is a concept that originated
             | in the US when it was a new country(probably wrong and US
             | centric). The question was who owns works created by a
             | government "of the people", the answer was "the people" so
             | it was formalized that US government works were not
             | protected by copyright[note 1] and were in the "public
             | domain" at first this was just laws, and when government
             | research organizations(nasa etc..) were founded their
             | works, the research they did, was also "public domain"
             | 
             | It really is an open question whether private citizens can
             | also declaim any copyright on a work, declare it "for the
             | public good" and put it in the public domain. Are you
             | allowed to give up your rights?
             | 
             | 1. The US government is able to protect it's works through
             | mechanisms other than copyright, think classification
             | levels. top secret etc..
        
               | Filligree wrote:
               | I'm not allowed to give up my rights, no.
               | 
               | As for NASA papers and such... I have no idea. If I were
               | running a company I'd be able to ask a lawyer; as it
               | stands, I'm taking the risk that the SQLite authors don't
               | sue.
        
         | ezekg wrote:
         | Here's another interesting read on "open source" and the OSI:
         | https://dieter.plaetinck.be/posts/open-source-undefined-part...
        
         | red_admiral wrote:
         | Indeed, it seems to me that Public Domain is what Open Source
         | should have been in the first place.
         | 
         | The free as in freedom, but not as in free beer quadrant
         | doesn't work too well, especially for individual developers.
        
           | sneak wrote:
           | There is an argument that without the copyleft provisions of
           | the GPL (sometimes described as a virus), free software would
           | not be as popular and important as it is today.
        
             | psychoslave wrote:
             | Humanity also was described as a virus, see for example The
             | Matrix. Also capitalism, communism, socialism, any
             | political system, religions, philosophies, cultures, and
             | anything you might relate or hate at mental level.
             | 
             | Even the idea that whatever we dislike that gains more than
             | zero popularity should be compared to a virus, this meme
             | spreads like a virus.
        
           | dec0dedab0de wrote:
           | You can release a binary as public domain.
           | 
           | Also, I believe that public domain as a concept does not
           | exist in some countries. if i remember correctly the concern
           | is that without a license the original author could change
           | their mind and sue.
           | 
           | But any public domain software also matches the fsf and osi
           | definition of free software and open source respectively.
           | Atleast in jurisdictions where public domain exists.
           | 
           | You may be confusing things with copy-left, which is designed
           | to protect users from developers. The gpl is a copy-left
           | license.
        
         | remram wrote:
         | OP is wrong, SQLite does match the requirements outlined in the
         | OSI's definition: https://opensource.org/osd
         | 
         | It's not "open source licensed" simply because it is not
         | licensed. There is no license document for OSI to approve.
         | 
         | Relying on OSI approval does not necessarily make sense, they
         | don't get to all licenses as your link points out. However
         | arguing over their definition seems very foolish. People only
         | do it when they want to pass their all-rights-reserved code as
         | "open source" (e.g. "I can call it what I want"). Having
         | adjectives that mean the same to everyone is very valuable,
         | actually.
        
           | evanelias wrote:
           | > Having adjectives that mean the same to everyone is very
           | valuable, actually.
           | 
           | Yes, and that's precisely why OSI _should_ have invented a
           | brand new term which they could trademark. But instead they
           | co-opted  "open source" which already had a clear, generic
           | meaning of "the source code is available", previously without
           | any connotations around specific license terms. And then due
           | to that prior usage of the term, OSI can't trademark it.
           | 
           | OSI created this terminology mess, and personally I don't
           | think it is "foolish" to argue with their historical
           | revisionism campaign around it.
           | 
           | Edit to add: for numerous proven examples of the term being
           | used for many years prior to the OSI's existence, read the
           | link ezekg already posted below,
           | https://dieter.plaetinck.be/posts/open-source-undefined-
           | part...
        
       | hitekker wrote:
       | This blog feels like karma farming. Recycled, old points in
       | listicle format on a popular topic with questionable accuracy.
       | This is on top of mixing in grievances the author's startup holds
       | against Dr Richard Hipp, like "won't accept (our) outside
       | contributions" and "not actually open source according to OSI".
       | 
       | As far as content goes, this listicle is probably great for view
       | counts/engagement/flamewars. I'd personally prefer deeper
       | thinking which this blog's previous posts-- high in hype and low
       | in technical rigor-- have not yet provided.
        
         | avinassh wrote:
         | > Recycled, old points in listicle format on a popular topic
         | with questionable accuracy.
         | 
         | Could you please state which are inaccurate? I am happy to
         | correct them.
         | 
         | As for the rest of the comment, well, I don't know what to say.
         | I am a beginner in databases and I am journaling the things I'm
         | learning. Some of my posts might not have depth because I don't
         | know much myself.
        
           | 7thpower wrote:
           | I just wanted to chime in and say I hope you keep it up; not
           | only learning and creating the content, but also engaging.
        
           | simplegeek wrote:
           | A little off topic, but just wanted to say please keep
           | blogging. I learn from your content as I'm also a beginner in
           | databases.
        
           | chasil wrote:
           | I am fairly certain that Dr. Hipp has discussed changes in
           | SQLite that were desired by Microsoft for integration into
           | Windows, which came to pass via a foundation membership.
           | 
           | I believe that this was mentioned in the video below (I am
           | not able to verify for now):
           | 
           | https://m.youtube.com/watch?v=Jib2AmRb_rk
           | 
           | It would be interesting to see what is required for an
           | organization to negotiate non-trivial changes in SQLite.
        
           | mtlynch wrote:
           | Your post:
           | 
           | > _There are over one trillion (1000000000000 or a million
           | million) SQLite databases in active use._
           | 
           | The original source[0] (which you don't link to):
           | 
           | > _Since SQLite is used extensively in every smartphone, and
           | there are more than 4.0 billion (4.0e9) smartphones in active
           | use, each holding hundreds of SQLite database files, it is
           | seems likely that there are over one trillion (1e12) SQLite
           | databases in active use._
           | 
           | You're changing speculation to a fact.
           | 
           | [0] https://www.sqlite.org/mostdeployed.html
        
             | Kwpolska wrote:
             | And by the way, pasting screenshots instead of linking to
             | sources is very uncool.
        
           | kerblang wrote:
           | Didn't see this comment before complaining in a separate
           | comment, but a destroyer is not a battleship.
           | 
           | https://en.wikipedia.org/wiki/Battleship
           | https://en.wikipedia.org/wiki/Destroyer
        
             | themadturk wrote:
             | In the OP's defense, I see this usage increasingly, as in
             | designating any combatant ship as a "battleship" (even
             | being used for sailing ships). It's not correct, but then
             | neither is "alright" in place of "all right": the language
             | changes whether we want it to or not.
        
           | seritools wrote:
           | > I hate that it doesn't have types. It's totally YOLO:
           | 
           | SQLite _does_ support strict column types since 3.37:
           | https://www.sqlite.org/stricttables.html
        
         | bbkane wrote:
         | This comment feels like "old man yells at clouds". Vague, non-
         | specific points about the accuracy of the article. This is on
         | top of mixing in grievances with the author non-judgmentally
         | listing and citing facts about SQLite's contribution model and
         | license.
         | 
         | As far as the content goes, this comment is probably great for
         | view counts/engagement/flamewars. I'd personally prefer deeper
         | thinking, which this author's previous comments-- usually fun
         | and interesting-- have provided ;)
        
         | johnfn wrote:
         | > I'd personally prefer deeper thinking which this blog's
         | previous posts-- high in hype and low in technical rigor-- have
         | not yet provided.
         | 
         | Really? Something like this[1] (literally the previous post
         | made by the author!) is "high in hype and low in technical
         | rigor"? Or do you just have an axe to grind?
         | 
         | [1]: https://avi.im/blag/2024/sqlite-past-present-future/
        
       | chrismorgan wrote:
       | > _SQLite does not have a Code of Conduct (CoC), rather Code of
       | Ethics_
       | 
       | There was confusion over this, because of different usage of
       | words. Simplifying well beyond the point of strict accuracy, a
       | CoC is a weapon to bind and control external contributors'
       | behaviour, the CoE is SQLite developers declaring their intended
       | conduct towards others.
       | 
       | > _SQLite is pronounced as "Ess-Cue-El-Lite"._
       | 
       | This doesn't match the quote that follows, which says "S-Q-L-ite,
       | like a mineral". And that's just how one guy chooses to pronounce
       | it... I wonder how many others do; certainly I've never heard it.
        
         | dkjaudyeqooe wrote:
         | There is some controversy over how to pronounce SQL with some
         | using S-Q-L and others (like me) pronouncing it like the word
         | "sequel".
         | 
         | I believe the latter is the correct name for historical
         | reasons. IBM originally named SQL 'SEQUEL' but were forced to
         | rename it for trademark reasons.
         | 
         | So I pronounce SQLite sequelite.
        
           | chrismorgan wrote:
           | > _So I pronounce SQLite sequelite._
           | 
           | This is by far the most popular pronunciation I've
           | encountered, and I think by far the most practical one too.
        
             | tucnak wrote:
             | Popular in America, but not elsewhere.
        
               | lucasoshiro wrote:
               | I also never heard it. In Brazil I only have heard SQL
               | pronunced as sequel in NoSQL. SQLite is mostly pronounced
               | S-Q-Light here, with the S and Q in Portuguese (weird,
               | but it happens often)
        
               | Izkata wrote:
               | In the US, I also say S-Q-Light.
        
           | fatboy wrote:
           | I remember hearing an interview with Richard Hipp where he
           | said he pronounced it as you do ("rhymes with kryptonite" I
           | think he may have said, or perhaps "like a mineral").
           | 
           | I'd always pronounced it in my head S-Q-L-Lite up until that
           | point, but I much prefer this other way that I'd never
           | considered. It rolls off the tongue easier and adds a bit of
           | fancy.
        
           | bun_terminator wrote:
           | I have never heard anything else but S-Q-L, in multiple
           | workplaces. What I was new to databases I started with the
           | history lesson, but was quickly corrected to pronounce it
           | S-Q-L.
           | 
           | I don't even know anymore, nor does anyone else I think
        
             | akavi wrote:
             | As an alternate datapoint, I've almost solely (by a 90%
             | majority or more) heard "sequel" and "sequelite"
             | (/'si:.kw@l/ and /'si:.kw@,laIt/, respectively) across 12
             | years and 6 companies (from FAANG to YC startups in SF and
             | NYC)
        
           | axus wrote:
           | Spite is a legitimate reason to choose a pronunciation.
        
           | somat wrote:
           | For what it's worth(not much), but if we are doing a
           | survey...
           | 
           | (US/western, not coastal)
           | 
           | I pronounce it ess que lite.
           | 
           | and always letter out SQL.
           | 
           | postgresql is the tricky one, naively there is no good way to
           | pronounce it. so when formal I say "postgres Q L" but mostly
           | just call it postgres
           | 
           | and because of the previous cases I have started slurring
           | mysql, easily the most pronounceable one into "mys Q L"
           | 
           | Microsofts SQL server (which I have never actually used, and
           | almost never talk about) is simply "S Q L server"
        
             | breakingcups wrote:
             | I've never heard anyone not say "sequel server" for
             | Microsoft's SQL Server
        
           | conductr wrote:
           | Some time around 2008-2012, I think, my habit shifted from
           | saying S Q L to SEQUEL in most cases. Even internal voice,
           | when thinking/reading, still says SEQUAL now. Even things
           | like My S Q L became My SEQUEL.
           | 
           | I feel like I made that shift due to how people around me,
           | and how public speakers, were aligning on it too, it felt to
           | me that the nomenclature was unifying a bit as linguistics
           | evolve and change a bit over normal course of time. I
           | remember the shift was not easy and I had to put intention
           | into it and it took a bit of time to make it feel natural.
           | Although, I've never thought about this too deeply and as I
           | write it I'm Not sure how others would respond to my memory
           | of it. I'm sure it's very regional, and now age dependent as
           | I'm sure if I was passed mid career at that time i wouldn't
           | have budged on my preferred terminology but also there's many
           | people who maybe are just too young to understand the time
           | and trend that I remember. Or just my own experience and
           | there was nothing really unifying at all.
        
       | drzaiusx11 wrote:
       | I worked with Richard Hipp on a project to integrate his query
       | engine into a custom scripting language with persistent storage
       | for embedded devices (think c#'s linq but backed by flash
       | storage).
       | 
       | He was a pleasure to work with and it seemed he made a decent
       | living just off of support contracts for projects like this. One
       | of the few one-man-shops that really, really worked out.
        
         | Imustaskforhelp wrote:
         | ooh very interesting , could you share the link ?
         | 
         | I am interested in a thing where the whole programming language
         | / program stack and everything is stored in the memory so you
         | can have a language where it can run from where it was paused ,
         | inspired by some comment on some other hackernews thread . I
         | had spent some of my weekends trying it but no use
        
         | Tempest1981 wrote:
         | I think I would have serious imposter syndrome. What was that
         | like?
        
       | BobbyTables2 wrote:
       | SQLite write locking should be the poster-child of how to
       | incorrectly implement concurrency in the absolute worst possible
       | way.
        
         | ryanianian wrote:
         | Please elaborate.
        
         | LinuxAmbulance wrote:
         | Not familiar with database concurrency implementations, how
         | does it get it wrong vs say, MySQL?
        
       | allo37 wrote:
       | Another interesting way they make money is security: SEE costs a
       | pretty penny. Worth it though, IME.
        
         | hellcow wrote:
         | Interesting. So it's an "open core" model.
        
       | hakcermani wrote:
       | Big fan of Sqlite and DRH. Wondering what the succession plan for
       | sqlite is ? May DRH live long and prosper though !
        
       | SigmundA wrote:
       | > _So DRH asked the question: what if the database just worked
       | without any server? This was an innovative idea back then._
       | 
       | Strange my recollection of the time was file based databases were
       | much more popular. FoxPro, Access (jet) and Dbase where all in
       | wide use in 90's and early 2000's and ran a lot of business
       | software using network file shares instead of a database server.
        
         | vidarh wrote:
         | Indeed, you're right - there was a multitude of products like
         | that, and linked in libraries for managing databases.
         | 
         | That said, I'm not aware of anyone doing that _with SQL_ before
         | SQLite. Though I might well have missed some.
        
           | Kwpolska wrote:
           | Microsoft Access/JET:
           | https://en.wikipedia.org/wiki/Access_Database_Engine
        
           | beagle3 wrote:
           | Borland's Interbase.
           | 
           | I also vaguely remember an optional SQL interface for Btrieve
           | circa 1990, but I might be mistaken.
        
             | neverartful wrote:
             | Interbase is still around and it can store the entire
             | database in a single file or across multiple files. There
             | are also 3 versions of it available: IBLite (in process DB
             | engine), IB-To-Go (in process DB engine), and Interbase
             | (server based).
        
           | chasil wrote:
           | dBase IV had a SQL implementation. I never used it.
           | 
           | https://en.wikipedia.org/wiki/DBase#dBase_IV
        
           | SigmundA wrote:
           | The Access database engine used SQL, it's how I got started
           | using the language in the mid 90's.
           | 
           | It wasn't just used by MS Access, its was used from VB and
           | other languages because it was just an ODBC/OLEDB driver.
           | 
           | https://en.wikipedia.org/wiki/Access_Database_Engine
           | 
           | FoxPro looks like it supported SQL in V2 in 1991
           | 
           | https://www.landley.net/history/mirror/collate/foxpro/foxpro.
           | ..
        
       | red_admiral wrote:
       | If you doubt that 10x coders exist, we just found some in the
       | SQLite project.
        
       | Svoka wrote:
       | Can't stop laughing from TIMMYSTAMP.
        
         | gs17 wrote:
         | I enjoy that SPONGEBLOB really sort of works.
        
       | threatofrain wrote:
       | I've been using SQLite for quick prototyping and as a log dump
       | for later aggregation, but one thing I've found is that it's easy
       | to accidentally want multi-writer in today's multi-service world.
       | That's repeatedly been my biggest stumbling block, and I wouldn't
       | be surprised if it's the foremost reason for others to "outgrow"
       | sqlite.
        
       | TekMol wrote:
       | My latest favorite fun fact about SQLite is that it is not only
       | my favorite SQL database, but also my favorite NoSql database.
       | 
       | Since 2024, all my new database tables have only one column.
       | Everything just goes into one single JSON column, which I always
       | call "data".                   SELECT
       | cities.data->>'name' city_name,
       | countries.data->>'name' country_name         FROM cities
       | JOIN countries              ON countries.data->'id' =
       | cities.data->'country_id'
       | 
       | I looked around a bit if some NoSql database would make this
       | easier. But it turned out no, even now that I only use Json
       | everywhere, SQLite is still the best tool.
        
         | rafram wrote:
         | But why?
        
           | advisedwang wrote:
           | To get the worst of both worlds
        
           | TekMol wrote:
           | Multiple reasons. Let me start with one: Flexibility.
           | 
           | I can add a new attribute the very moment I create a new row.
           | 
           | When I want to add "not_available_before: 2026" to a car, I
           | can do that right away. No need to alter the table and add a
           | new column.
        
         | RadiozRadioz wrote:
         | > Since 2024
         | 
         | So you have only just started doing this
        
           | breakingcups wrote:
           | Well, they did say "latest". 2024 has also been going for 364
           | days now.
        
       | throw0101d wrote:
       | > _Since SQLite is used extensively in every smartphone, and
       | there are more than 4.0 billion (4.0e9) smartphones in active
       | use, each holding hundreds of SQLite database files, it is seems
       | likely that there are over one trillion (1e12) SQLite databases
       | in active use._
       | 
       | I find the scientific notation of the counts amusing given the
       | sometimes different meanings of "billion" and "trillion"
       | (especially with English as a second language):
       | 
       | * https://en.wikipedia.org/wiki/Long_and_short_scales
       | 
       | * https://www.youtube.com/watch?v=C-52AI_ojyQ
       | 
       | * https://www.youtube.com/watch?v=WM1FFhaWj9w (bonus: on French
       | numbers)
        
       | kerblang wrote:
       | > D. Richard Hipp (DRH) was building software for the USS Oscar
       | Austin, a Navy destroyer. The existing software would just stop
       | working whenever the server went down (this was in the 2000s).
       | For a battleship, this was unacceptable.
       | 
       | Maybe it's a nitpick, but a destroyer is not a battleship. The
       | latter weren't even in service in the 2000's.
        
         | kstrauser wrote:
         | As a Navy veteran, I agree with you. As a descriptivist, I can
         | accept someone referring to a destroyer, carrier, gator
         | freighter, or anything else that carries lots of armament a
         | "battle ship".
        
           | kerblang wrote:
           | Warship
        
       | juneyi wrote:
       | i really enjoyed reading this post. people are really critical
       | here...
        
       | qwertox wrote:
       | > SQLite takes backward compatibility very seriously - All
       | releases of SQLite version 3 can read and write database files
       | created by the very first SQLite 3 release (version 3.0.0) going
       | back to 2004-06-18.
       | 
       | This is so remarkable and reminds me of my troubles with MongoDB
       | and specially InfluxDB.
       | 
       | My MongoDBs are mostly still on 4.4 because of the complicated
       | upgrade path (mostly related to the Python drivers), and InfluxDB
       | is now officially split into 1.x and 2.x for me, where I have no
       | plans for upgrading. And I specially will keep my hands off of
       | 3.x because I've learned my lesson.
        
       | andypants wrote:
       | > This was also changed recently in 2010 by adding WAL mode.
       | 
       | 2010 is closer to sqlite's creation than today, not very recent
        
       ___________________________________________________________________
       (page generated 2024-12-30 23:00 UTC)