On Tue, Oct 29, 2019 at 8:38 AM Thomas Kurz <sqlite.2...@t-net.ruhr> wrote:
> We recently had a discussion about date/time support, but also other > suggestions, which sooner or later end up at the point "cannot be done, > would break backward compatibility". (See also: "Backward compatibility vs. > new features (was: Re: dates, times and R)") > > I'm always curious and monitoring trunk development, and now I have read > in the draft release notes for 3.31: > > > If an earlier version of SQLite attempts to read a database file that > contains a generated column in its schema, then that earlier version will > perceive the generated column syntax as an error and will report that the > database schema is corrupt. > > ...which leads me to some confusion. So there actually *are* features > breaking compability? Wouldn't that be a chance for full date/time support > as well? > To complement Graham's answer, I see 3 different levels of backward compatibility: 1) file format: https://www.sqlite.org/fileformat.html 2) SQLite C API: https://www.sqlite.org/capi3ref.html 3) SQL language: https://www.sqlite.org/lang.html (including the built-in SQL functions) Anything that breaks #1 or #2 is dead on arrival basically. SQLite4 was a brief attempt at #1, but it fizzled out. OTOH, #3 keeps adding new features over time, because as long as you don't use those new features, older versions of SQLite can read/process the DB files just fine. This is more "forward-compatibility" in a sense, when older SQLite versions can or cannot read DB files written using newer versions of SQLite. While "backward-compatibility" is the latest version of SQLite reading older SQLite's DB files (mostly about #1 and #2). Your DB files are as forward-compatible as you choose them to be, depending on the new SQL features you use or not. I didn't follow the date/time thread closely enough to see where the proposed changes fall in the above categorization. I hope this helps. --DD _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users