SQLite User Forum

Unexpected Log Messages from CLI
Login

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

(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> 

(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.

(6) By Richard Hipp (drh) on 2025-04-30 14:39:36 in reply to 1 [link] [source]

I can repro the issue. Analysis:

  1. This is a problem in the CLI program, not in the core SQLite library
  2. It is harmless - this is merely a failure to disable the ".log" output while doing things to accomplish ".schema" that might legitimately fail.
  3. 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.