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