SQLite 3.37 Lightweight Database Comes Packed with New Features

The biggest new feature in this release is support for STRICT tables.

SQLite is is an open source self-contained, lightweight serverless relational database management system. The lite in SQLite means lightweight in terms of setup, database administration, and required resources.

Normally, an RDBMS such as MySQL, PostgreSQL, etc., requires a separate server process to operate, but SQLite does not work this way. It accesses its storage files directly.

SQLite stores its data in a single cross-platform file. As there’s no dedicated server or specialized filesystem, deploying SQLite is as simple as creating a new regular file.

Related: SQLite DB Browser, How to Install and Use it on Linux

Now SQLite 3.37 is out as the latest update to this widely-used database library used by countless applications and other software. Here’s what’s new.

What’s New in SQLite 3.37

Version 3.37 is a routine maintenance release of SQLite. The biggest new feature in this release is support for STRICT tables. But what’s that means exactly?

As you know, SQLite strives to be flexible regarding the datatype of the content that it stores. For example, if a table column has a type of “INTEGER”, then SQLite tries to convert anything inserted into that column into an integer. In other words, an attempt to insert the string ‘123’ results in an integer 123 being inserted.

Well, some developers appreciate the freedom that SQLite’s flexible typing rules provide. Conversely, other are aghast at SQLite’s flagrant rule-breaking and prefer the traditional rigid type system found in all other SQL database engines and in the SQL standard.

Now SQLite 3.37 brings support for STRICT tables in a CREATE TABLE statement. If the STRICT table-option keyword is added to the end, after the closing ), then strict typing rules apply to that table.

Beginning with version 3.37, the CLI has the ability to hold multiple database connections open at once. Only one database connection is active at a time. Each database connection is identified by an integer between 0 and 9. The inactive connections are still open but are idle.

Another significant addition with SQLite 3.37 are the newly added sqlite3_changes64() and sqlite3_total_changes64() interfaces. These functions return the total number of rows inserted, modified or deleted by all INSERT, UPDATE or DELETE statements completed since the database connection was opened, including those executed as part of trigger programs.

More details on SQLite 3.37 can be found via the announcement on the project’s website.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Think You're an Ubuntu Expert? Let's Find Out!

Put your knowledge to the test in our lightning-fast Ubuntu quiz!
Ten questions to challenge yourself to see if you're a Linux legend or just a penguin in the making.

1 / 10

Ubuntu is an ancient African word that means:

2 / 10

Who is the Ubuntu's founder?

3 / 10

What year was the first official Ubuntu release?

4 / 10

What does the Ubuntu logo symbolize?

5 / 10

What package format does Ubuntu use for installing software?

6 / 10

When are Ubuntu's LTS versions released?

7 / 10

What is Unity?

8 / 10

What are Ubuntu versions named after?

9 / 10

What's Ubuntu Core?

10 / 10

Which Ubuntu version is Snap introduced?

The average score is 69%