Index: src/pragma.c ================================================================== --- src/pragma.c +++ src/pragma.c @@ -1463,12 +1463,14 @@ sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seq", SQLITE_STATIC); sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", SQLITE_STATIC); sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "unique", SQLITE_STATIC); sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "avgrowsize", SQLITE_STATIC); sqlite3VdbeAddOp2(v, OP_Integer, 0, 1); - sqlite3VdbeAddOp2(v, OP_Null, 0, 2); - sqlite3VdbeAddOp2(v, OP_Integer, 1, 3); + sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, + sqlite3MPrintf(db, "sqlite_pseudoindex_%s", pTab->zName), + P4_DYNAMIC); + sqlite3VdbeAddOp2(v, OP_Integer, 0, 3); sqlite3VdbeAddOp2(v, OP_Integer, (int)sqlite3LogEstToInt(pTab->szTabRow), 4); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 4); for(pIdx=pTab->pIndex, i=1; pIdx; pIdx=pIdx->pNext, i++){ sqlite3VdbeAddOp2(v, OP_Integer, i, 1); Index: test/pragma.test ================================================================== --- test/pragma.test +++ test/pragma.test @@ -572,11 +572,11 @@ } {} do_test pragma-6.4 { execsql { pragma index_list(t3); } - } {/0 {} 1 \d+ 1 sqlite_autoindex_t3_1 1 \d+/} + } {/0 sqlite_pseudoindex_t3 0 \d+ 1 sqlite_autoindex_t3_1 1 \d+/} } ifcapable {!foreignkey} { execsql {CREATE TABLE t3(a,b UNIQUE)} } do_test pragma-6.5.1 { @@ -645,11 +645,11 @@ db close sqlite3 db test.db execsql { pragma index_list(t3); } -} {/0 {} 1 \d+ 1 t3i1 0 \d+ 2 sqlite_autoindex_t3_1 1 \d+/} +} {/0 sqlite_pseudoindex_t3 0 \d+ 1 t3i1 0 \d+ 2 sqlite_autoindex_t3_1 1 \d+/} do_test pragma-7.1.2 { execsql { pragma index_list(t3_bogus); } } {} @@ -1659,11 +1659,11 @@ do_test 23.3 { db eval { CREATE INDEX i3 ON t1(d,b,c); } db2 eval {PRAGMA index_list(t1)} -} {/0 {} 1 \d+ 1 i3 0 \d+ 2 i2 0 \d+ 3 i1 0 \d+/} +} {/0 sqlite_pseudoindex_t1 0 \d+ 1 i3 0 \d+ 2 i2 0 \d+ 3 i1 0 \d+/} do_test 23.4 { db eval { ALTER TABLE t1 ADD COLUMN e; } db2 eval {