1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00

Fix a problem in the fts4aux virtual table causing it to sometimes return spurious SQLITE_CORRUPT errors for fts4 tables with more than 1 column. Report [bugs:/info/2026-08-13T05:56:36Z | 2026-08-13T05:56:36Z].

FossilOrigin-Name: 06f3f9f93be17584982b5fbd84eb1f35b6e15e9271e8d128df5452226fb3b5b9
This commit is contained in:
dan
2026-08-13 11:29:33 +00:00
parent bea60d9466
commit acc18b80ef
4 changed files with 23 additions and 10 deletions

View File

@@ -341,7 +341,7 @@ static int fts3auxNextMethod(sqlite3_vtab_cursor *pCursor){
/* State 3. The integer just read is a column number. */
default: assert( eState==3 );
iCol = (int)v;
if( iCol<1 || iCol>(pFts3->nColumn+1) ){
if( iCol<1 || iCol>32767 ){
rc = SQLITE_CORRUPT_VTAB;
break;
}

View File

@@ -1,5 +1,5 @@
C Disable\srecently\sadded\stest\scases\sfor\simmutable=1\swhen\srunning\nthe\sinmemory_journal\spermutation.
D 2026-08-13T00:21:08.075
C Fix\sa\sproblem\sin\sthe\sfts4aux\svirtual\stable\scausing\sit\sto\ssometimes\sreturn\sspurious\sSQLITE_CORRUPT\serrors\sfor\sfts4\stables\swith\smore\sthan\s1\scolumn.\sReport\s[bugs:/info/2026-08-13T05:56:36Z\s|\s2026-08-13T05:56:36Z].
D 2026-08-13T11:29:33.067
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -83,7 +83,7 @@ F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
F ext/fts3/fts3.c 3a68333835a5152e16bc7059b50c049b2ccb616bea165b319b456ba796b0a5e7
F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
F ext/fts3/fts3Int.h 277f32f304e82f4397fc2a74793c0a95318b7abb9670b519e4805a00946cbd9b
F ext/fts3/fts3_aux.c bbb614abcc995bf748cba4717e9fd8de67898e33c80f60379f6feb2358189b4b
F ext/fts3/fts3_aux.c 6abc048315dfce193d00ce294337f7afc051e1c1d3377cd22c259545dfad21f7
F ext/fts3/fts3_expr.c c101b4e37458c35d452653de601a683b75f81b09ac681bb38031fa5a77e4a270
F ext/fts3/fts3_hash.c d9dba473741445789330c7513d4f65737c92df23c3212784312931641814672a
F ext/fts3/fts3_hash.h 39cf6874dc239d6b4e30479b1975fe5b22a3caaf
@@ -1168,7 +1168,7 @@ F test/fts3ao.test 266989148fec6d9f1bb6c5382f7aa3dcea0e9cd444576e28dd2b9287ac7dd
F test/fts3atoken.test dc2078ce464914efe3a8dfc545dd034a0fc14f2ab425c240471d5a5f1c721400
F test/fts3atoken2.test d0ec63ae6f7c67a5bc47f50590c92ee5c68c306fa7eba1629ca965c9d5b144c9
F test/fts3auto.test 649aa4c198d7acc5cd6355e19ee073d051c40d9e88a43fc3d88af46bdf3e99d5
F test/fts3aux1.test 1880eaa75c586cd10f53080479a2b819b3915ae7ce55c4e0ba8f1fe05ac0a6a7
F test/fts3aux1.test 30dbeeb0a6e4c4484e383bcc533887abecdedd006c5d74269628cc47880975c5
F test/fts3aux2.test 2459e7fa3e22734aed237d1e2ae192f5541c4d8b218956ad2d90754977bf907f
F test/fts3b.test c15c4a9d04e210d0be67e54ce6a87b927168fbf9c1e3faec8c1a732c366fd491
F test/fts3c.test fc723a9cf10b397fdfc2b32e73c53c8b1ec02958
@@ -2218,8 +2218,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P 43b23132a1288979063b3121b3f4f0d9d7805323b8e8496508426fa371425338
R 68cf3faf9020d656b86204c58e239cd4
U drh
Z fdc36282921e779336cf9bd7ee5a4f4d
P 198e602053e0f9e7d09cfa2238d0fe45d3120c0a7a6e2d770bebfc8655ea7737
R c776780c1728709207088830d7a5b134
U dan
Z e7ebfc200776fc674a00ab959bff3e7a
# Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
198e602053e0f9e7d09cfa2238d0fe45d3120c0a7a6e2d770bebfc8655ea7737
06f3f9f93be17584982b5fbd84eb1f35b6e15e9271e8d128df5452226fb3b5b9

View File

@@ -528,4 +528,17 @@ do_test 8.2 {
catchsql { SELECT * FROM aux2 }
} {1 {SQL logic error}}
#-------------------------------------------------------------------------
# https://sqlite.org/bugs/forumpost/2a3f211ecd
#
reset_db
do_execsql_test 9.0 {
CREATE VIRTUAL TABLE t0 USING fts4(c0, c1, c2);
CREATE VIRTUAL TABLE t1 USING fts4aux(t0);
INSERT INTO t0(c2) VALUES ('x');
} {}
do_execsql_test 9.1 {
SELECT * FROM t1;
} {x * 1 1 x 2 1 1}
finish_test