Unexpected Log Messages from CLI
(1) By anonymous on 2025-04-30 00:28:35 [source]
Running on an Intel Mac with Sonoma 14.7.5 and sqlite installed via Conda.
I noticed this today:
% sqlite3
SQLite version 3.45.3 2024-04-15 13:34:05
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .version
SQLite 3.45.3 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355
zlib version 1.2.13
clang-14.0.6 (64-bit)
sqlite> .log on
sqlite> create table foo(bar);
sqlite> .schema foo
(1) invalid arguments to fts4aux constructor in "PRAGMA "main".table_info='fts4aux';"
(21) API called with NULL prepared statement
(21) misuse at line 90828 of [8653b75887]
CREATE TABLE foo(bar);
sqlite>
Just thought I'd mention it as I don't remember seeing anything about it.
(2) By Richard Hipp (drh) on 2025-04-30 01:32:33 in reply to 1 [link] [source]
What does "PRAGMA compile_options;
" say? How did Conda compile SQLite?
Because I am having trouble reproducing the problem.
(3) By RandomCoder on 2025-04-30 04:24:23 in reply to 2 [link] [source]
Interestingly, I can recreate the log output on Windows, seems to have been introduced in 3.42.0, released 2023-05-16. Versions before that don't output the fts4aux messages (well, back till 3.6.22, which complains about the lack of .log
).
Here's a repro from a Mac, with the pragma dump:
$ uname -a
Darwin m2-mbp.local 24.4.0 Darwin Kernel Version 24.4.0: Fri Apr 11 18:33:39 PDT 2025; root:xnu-11417.101.15~117/RELEASE_ARM64_T6020 arm64
$ wget https://www.sqlite.org/2025/sqlite-tools-osx-x64-3490100.zip
[...]
2025-04-29 21:15:04 (5.83 MB/s) - ‘sqlite-tools-osx-x64-3490100.zip’ saved [3706766/3706766]
$ unzip sqlite-tools-osx-x64-3490100.zip
[...]
$ ./sqlite3
SQLite version 3.49.1 2025-02-18 13:38:58
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .version
SQLite 3.49.1 2025-02-18 13:38:58 873d4e274b4988d260ba8354a9718324a1c26187a4ab4c1cc0227c03d0f10e70
zlib version 1.2.12
clang-14.0.3 (64-bit)
sqlite> .log on
sqlite> create table foo(bar);
sqlite> .schema foo
(1) invalid arguments to fts4aux constructor in "PRAGMA "main".table_info='fts4aux';"
(21) API called with NULL prepared statement
(21) misuse at line 91561 of [873d4e274b]
CREATE TABLE foo(bar);
sqlite> PRAGMA compile_options;
ATOMIC_INTRINSICS=1
COMPILER=clang-14.0.3
DEFAULT_AUTOVACUUM
DEFAULT_CACHE_SIZE=-2000
DEFAULT_FILE_FORMAT=4
DEFAULT_JOURNAL_SIZE_LIMIT=-1
DEFAULT_MMAP_SIZE=0
DEFAULT_PAGE_SIZE=4096
DEFAULT_PCACHE_INITSZ=20
DEFAULT_RECURSIVE_TRIGGERS
DEFAULT_SECTOR_SIZE=4096
DEFAULT_SYNCHRONOUS=2
DEFAULT_WAL_AUTOCHECKPOINT=1000
DEFAULT_WAL_SYNCHRONOUS=2
DEFAULT_WORKER_THREADS=0
DIRECT_OVERFLOW_READ
DQS=0
ENABLE_BYTECODE_VTAB
ENABLE_DBPAGE_VTAB
ENABLE_DBSTAT_VTAB
ENABLE_EXPLAIN_COMMENTS
ENABLE_FTS3
ENABLE_FTS4
ENABLE_FTS5
ENABLE_GEOPOLY
ENABLE_MATH_FUNCTIONS
ENABLE_OFFSET_SQL_FUNC
ENABLE_PREUPDATE_HOOK
ENABLE_RTREE
ENABLE_SESSION
ENABLE_STMTVTAB
ENABLE_STMT_SCANSTATUS
ENABLE_UNKNOWN_SQL_FUNCTION
HAVE_ISNAN
MALLOC_SOFT_LIMIT=1024
MAX_ATTACHED=10
MAX_COLUMN=2000
MAX_COMPOUND_SELECT=500
MAX_DEFAULT_PAGE_SIZE=8192
MAX_EXPR_DEPTH=1000
MAX_FUNCTION_ARG=1000
MAX_LENGTH=1000000000
MAX_LIKE_PATTERN_LENGTH=50000
MAX_MMAP_SIZE=0x7fff0000
MAX_PAGE_COUNT=0xfffffffe
MAX_PAGE_SIZE=65536
MAX_SQL_LENGTH=1000000000
MAX_TRIGGER_DEPTH=1000
MAX_VARIABLE_NUMBER=32766
MAX_VDBE_OP=250000000
MAX_WORKER_THREADS=8
MUTEX_PTHREADS
SYSTEM_MALLOC
TEMP_STORE=1
THREADSAFE=1
(5) By jose isaias cabrera (jicman) on 2025-04-30 12:52:04 in reply to 3 [link] [source]
I can also replicate it on cygwin and one MSYS2. Cygwin's output:
$ sqlite3
-- Loading resources from /home/U618346/.sqliterc
SQLite version 3.50.0 2025-04-02 12:41:16
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .log on
sqlite> create table foo(bar);
VM-steps: 31
Run Time: real 0.000 user 0.000000 sys 0.000000
sqlite> .schema foo
(1) invalid arguments to fts4aux constructor in "PRAGMA "main".table_info='fts4aux';"
(21) API called with NULL prepared statement
(21) misuse at line 92420 of [9e903953ba]
CREATE TABLE foo(bar);
sqlite> PRAGMA compile_options;
┌───────────────────────────────────┐
│ compile_options │
├───────────────────────────────────┤
│ 'ATOMIC_INTRINSICS=1' │
│ 'COMPILER=gcc-11.5.0' │
│ 'DEFAULT_AUTOVACUUM' │
│ 'DEFAULT_CACHE_SIZE=-2000' │
│ 'DEFAULT_FILE_FORMAT=4' │
│ 'DEFAULT_JOURNAL_SIZE_LIMIT=-1' │
│ 'DEFAULT_MMAP_SIZE=0' │
│ 'DEFAULT_PAGE_SIZE=4096' │
│ 'DEFAULT_PCACHE_INITSZ=20' │
│ 'DEFAULT_RECURSIVE_TRIGGERS' │
│ 'DEFAULT_SECTOR_SIZE=4096' │
│ 'DEFAULT_SYNCHRONOUS=2' │
│ 'DEFAULT_WAL_AUTOCHECKPOINT=1000' │
│ 'DEFAULT_WAL_SYNCHRONOUS=2' │
│ 'DEFAULT_WORKER_THREADS=0' │
│ 'DIRECT_OVERFLOW_READ' │
│ 'DQS=0' │
│ 'ENABLE_BYTECODE_VTAB' │
│ 'ENABLE_DBPAGE_VTAB' │
│ 'ENABLE_DBSTAT_VTAB' │
│ 'ENABLE_EXPLAIN_COMMENTS' │
│ 'ENABLE_FTS3' │
│ 'ENABLE_FTS4' │
│ 'ENABLE_FTS5' │
│ 'ENABLE_GEOPOLY' │
│ 'ENABLE_MATH_FUNCTIONS' │
│ 'ENABLE_OFFSET_SQL_FUNC' │
│ 'ENABLE_PREUPDATE_HOOK' │
│ 'ENABLE_RTREE' │
│ 'ENABLE_SESSION' │
│ 'ENABLE_STMTVTAB' │
│ 'ENABLE_UNKNOWN_SQL_FUNCTION' │
│ 'HAVE_ISNAN' │
│ 'MALLOC_SOFT_LIMIT=1024' │
│ 'MAX_ATTACHED=10' │
│ 'MAX_COLUMN=2000' │
│ 'MAX_COMPOUND_SELECT=500' │
│ 'MAX_DEFAULT_PAGE_SIZE=8192' │
│ 'MAX_EXPR_DEPTH=1000' │
│ 'MAX_FUNCTION_ARG=1000' │
│ 'MAX_LENGTH=1000000000' │
│ 'MAX_LIKE_PATTERN_LENGTH=50000' │
│ 'MAX_MMAP_SIZE=0' │
│ 'MAX_PAGE_COUNT=0xfffffffe' │
│ 'MAX_PAGE_SIZE=65536' │
│ 'MAX_SQL_LENGTH=1000000000' │
│ 'MAX_TRIGGER_DEPTH=1000' │
│ 'MAX_VARIABLE_NUMBER=32766' │
│ 'MAX_VDBE_OP=250000000' │
│ 'MAX_WORKER_THREADS=8' │
│ 'MUTEX_W32' │
│ 'SYSTEM_MALLOC' │
│ 'TEMP_STORE=1' │
│ 'THREADSAFE=1' │
└───────────────────────────────────┘
VM-steps: 112
Run Time: real 0.000 user 0.000000 sys 0.000000
sqlite>
I can't replicate it on my own Windows 10 build:
15:04:26.06>sqlite3
SQLite version 3.50.0 2025-03-11 12:19:27
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .log on
sqlite> create table foo(bar);
sqlite> .schema foo
CREATE TABLE foo(bar);
sqlite> PRAGMA compile_options;
ATOMIC_INTRINSICS=1
COMPILER=gcc-14.2.0
DEFAULT_AUTOVACUUM
DEFAULT_CACHE_SIZE=-2000
DEFAULT_FILE_FORMAT=4
DEFAULT_JOURNAL_SIZE_LIMIT=-1
DEFAULT_MMAP_SIZE=0
DEFAULT_PAGE_SIZE=4096
DEFAULT_PCACHE_INITSZ=20
DEFAULT_RECURSIVE_TRIGGERS
DEFAULT_SECTOR_SIZE=4096
DEFAULT_SYNCHRONOUS=2
DEFAULT_WAL_AUTOCHECKPOINT=1000
DEFAULT_WAL_SYNCHRONOUS=2
DEFAULT_WORKER_THREADS=0
DIRECT_OVERFLOW_READ
ENABLE_FTS5
MALLOC_SOFT_LIMIT=1024
MAX_ATTACHED=10
MAX_COLUMN=2000
MAX_COMPOUND_SELECT=500
MAX_DEFAULT_PAGE_SIZE=8192
MAX_EXPR_DEPTH=1000
MAX_FUNCTION_ARG=1000
MAX_LENGTH=1000000000
MAX_LIKE_PATTERN_LENGTH=50000
MAX_MMAP_SIZE=0x7fff0000
MAX_PAGE_COUNT=0xfffffffe
MAX_PAGE_SIZE=65536
MAX_SQL_LENGTH=1000000000
MAX_TRIGGER_DEPTH=1000
MAX_VARIABLE_NUMBER=32766
MAX_VDBE_OP=250000000
MAX_WORKER_THREADS=8
MUTEX_W32
SYSTEM_MALLOC
TEMP_STORE=1
THREADSAFE=1
sqlite>
Just for discovery purpose.
(4) By anonymous on 2025-04-30 04:31:06 in reply to 2 [link] [source]
OP here.
SQLite version 3.45.3 2024-04-15 13:34:05
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> pragma compile_options;
ATOMIC_INTRINSICS=1
COMPILER=clang-14.0.6
DEFAULT_AUTOVACUUM
DEFAULT_CACHE_SIZE=-2000
DEFAULT_FILE_FORMAT=4
DEFAULT_JOURNAL_SIZE_LIMIT=-1
DEFAULT_MMAP_SIZE=0
DEFAULT_PAGE_SIZE=4096
DEFAULT_PCACHE_INITSZ=20
DEFAULT_RECURSIVE_TRIGGERS
DEFAULT_SECTOR_SIZE=4096
DEFAULT_SYNCHRONOUS=2
DEFAULT_WAL_AUTOCHECKPOINT=1000
DEFAULT_WAL_SYNCHRONOUS=2
DEFAULT_WORKER_THREADS=0
DIRECT_OVERFLOW_READ
DQS=0
ENABLE_COLUMN_METADATA
ENABLE_DBPAGE_VTAB
ENABLE_DBSTAT_VTAB
ENABLE_EXPLAIN_COMMENTS
ENABLE_FTS3
ENABLE_FTS3_TOKENIZER
ENABLE_FTS4
ENABLE_FTS5
ENABLE_GEOPOLY
ENABLE_MATH_FUNCTIONS
ENABLE_RTREE
ENABLE_STMTVTAB
ENABLE_UNLOCK_NOTIFY
MALLOC_SOFT_LIMIT=1024
MAX_ATTACHED=10
MAX_COLUMN=2000
MAX_COMPOUND_SELECT=500
MAX_DEFAULT_PAGE_SIZE=8192
MAX_EXPR_DEPTH=10000
MAX_FUNCTION_ARG=127
MAX_LENGTH=1000000000
MAX_LIKE_PATTERN_LENGTH=50000
MAX_MMAP_SIZE=0x7fff0000
MAX_PAGE_COUNT=0xfffffffe
MAX_PAGE_SIZE=65536
MAX_SQL_LENGTH=1000000000
MAX_TRIGGER_DEPTH=1000
MAX_VARIABLE_NUMBER=250000
MAX_VDBE_OP=250000000
MAX_WORKER_THREADS=8
MUTEX_PTHREADS
SECURE_DELETE
SYSTEM_MALLOC
TEMP_STORE=1
THREADSAFE=1
sqlite>
(6) By Richard Hipp (drh) on 2025-04-30 14:39:36 in reply to 1 [link] [source]
I can repro the issue. Analysis:
- This is a problem in the CLI program, not in the core SQLite library
- It is harmless - this is merely a failure to disable the ".log" output while doing things to accomplish ".schema" that might legitimately fail.
- The problem is now fixed on trunk.
(7) By jose isaias cabrera (jicman) on 2025-04-30 19:44:32 in reply to 6 [link] [source]
Confirmed fixed.