원문 캡처 · sqlite.org
원문 캡처 · sqlite.org

SQLite 3.54.0이 2026년 10월 9일 출시됐다. 이번 버전은 명령줄 인터페이스(CLI)와 쿼리 계획을 개선하고, 날짜·시간 함수와 새 API를 추가했다. Windows 지원 대상은 Vista 이상으로 바뀌며, Linux·Mac·BSD 등 다른 유닉스 계열 플랫폼에는 이 변경이 적용되지 않는다.

  1. CLI를 개선했다. 프롬프트 문자열에 상태 정보를 표시하는 이스케이프 시퀀스를 사용할 수 있으며, SQLITE_PS1 및 SQLITE_PS2 환경 변수가 설정돼 있으면 이를 초기 프롬프트에 반영한다. 기본 프롬프트도 새 이스케이프 시퀀스를 활용하도록 바뀌었다. 열 형식 출력 모드는 쿼리 결과가 비어 있어도 기본적으로 열 이름 헤더를 표시한다.

새 diskused() 확장 기능으로 .diskused 점 명령을 구현했다. 이를 대체하는 별도 유틸리티인 sqlite3_analyzer는 더 이상 사용하지 않도록 권고한다. 유닉스에서는 CLI가 형식 없는 BLOB 값을 출력할 때 널 바이트를 보존한다.

.mode 명령에는 --rowcount on(문서)과 --titles always(문서) 옵션을 추가했다. --titles always가 기본값이며, 이전 동작은 -titles on으로 복원할 수 있다. 정수와 부동소수점 값의 출력 형식을 printf 스타일 형식 문자열로 더 정밀하게 지정하는 --ifmt 및 --fpfmt 옵션도 추가했다. 기존 호환성을 위해 -csv 명령줄 옵션은 표시 제한을 자동으로 해제한다. 기본 CLI 프롬프트는 NO_COLOR 환경 변수를 따른다.

SQL Server와 Oracle 호환을 위해 각각 go 또는 /만 적은 줄로 SQL 명령을 끝내는 기능은 중단됐다. 단, CLI를 -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR 옵션으로 컴파일한 경우에는 계속 사용할 수 있다.

  1. 쿼리 계획을 개선했다. 표현식 인덱스가 있는 테이블을 UPDATE할 때 인덱싱 대상 값이 바뀌지 않으면 해당 인덱스를 갱신하지 않는다. expr OR TRUE 및 expr OR FALSE 최적화를 개선했고, IN 연산자 오른쪽에 있는 SELECT 문의 DISTINCT를 무시한다. LIMIT이 정확히 1인 UNION 쿼리는 더 빠르게 처리하고 메모리 사용량도 줄였다.
  1. ALTER TABLE은 ROWID, _ROWID_, OID라는 특수 이름을 가진 열을 추가·삭제·이름 변경하려는 시도에 오류를 발생시킨다.
  1. 선택적 확장 기능으로 diskused() SQL 함수를 추가했다.
  1. 내장 printf()와 format() SQL 함수에 JSON 문자열 리터럴을 출력하는 %J 및 `%j 변환 지정자를 추가했다.
  1. sqlite3_result_str() 인터페이스를 추가하고 내부 코드에서도 사용해 코드를 단순화했다.
  1. sqlite3_incomplete() 인터페이스를 추가했다. 새로 개선된 CLI 프롬프트 문자열 관리 기능에서도 이 인터페이스를 사용한다.
  1. 날짜·시간 함수를 개선했다. weekday 수정자에 weekday -N 형식을 추가하고, end of 수정자를 추가했다.
  1. 해당 기능을 지원하는 시스템에서는 임시 파일을 만들 때 O_TMPFILE을 사용한다.
  1. Windows XP 이전 버전과 Windows CE를 포함한 구형 Windows 지원을 중단했다. SQLite for Windows는 이제 Windows Vista(2007년경) 이상이 필요하다. 지원 대상인 모든 Windows 플랫폼이 Slim Reader/Writer Locks(SRWL)를 제공하므로, 재귀를 지원하지 않는 뮤텍스를 CriticalSection 대신 SRWL로 구현해 성능을 개선했다. UWP 및 WebUI 애플리케이션에는 컴파일 옵션 -DSQLITE_UWP=1을 사용한다. 이 변경은 Windows용 SQLite에만 해당하며 Linux, Mac, BSD 및 기타 유닉스 계열 빌드에는 영향을 주지 않는다.
  1. CREATE TABLE 문의 DEFAULT 절에 있는 SQL 함수에 대해 이제 권한 부여 콜백(authorizer callback)이 호출된다. 이는 CREATE TABLE 문을 처음 실행할 때와 기본값을 실제로 사용할 때 모두 적용되지만, 데이터베이스를 열면서 스키마를 읽을 때는 호출되지 않는다. 권한 부여 콜백 문서
  1. sqlite3_limit() 인터페이스에 SQLITE_LIMIT_SCHEMA와 SQLITE_LIMIT_TRIGGER_STEPS를 추가했다.
  1. Linux x64에서 Valgrind를 사용해 speedtest1 성능 벤치마크의 CPU 사이클 수를 측정한 결과, 약 4% 빨라졌다. 1년 전 버전인 3.51.0과 비교하면 약 7.5% 빠르다. 실제 성능은 작업 부하, 빌드 옵션, CPU, 컴파일러 및 운영체제에 따라 달라질 수 있다.
  1. SQLITE_SOURCE_ID: 2026-10-09 15:46:58 be8d059e9a49089ab2dce5ed26dd87aaf598fdc5fbe0b107c0dd758464bcd5e3
  1. sqlite3.c의 SHA3-256: 8efd453d08a7cfc4c79de5923153036cdc4dcaa254d4f1e617be6a2a98828f9e

SQLite 전체 릴리스 목록과 연대표를 확인할 수 있다. 모든 체크인에 대한 상세 기록은 SQLite 버전 관리 사이트에 있다.