Tried with the latest 3.20.1, but same result. My explain output is like this:
addr opcode p1 p2 p3 p4 p5 comment 0 Init 0 1 0 00 Start at 1 1 String8 0 1 0 application_id 00 r[1]='application_id' 2 ResultRow 1 1 0 00 output=r[1] 3 ResultRow 1 1 0 00 output=r[1] 4 String8 0 1 0 auto_vacuum 00 r[1]='auto_vacuum' 5 ResultRow 1 1 0 00 output=r[1] 6 ResultRow 1 1 0 00 output=r[1] 7 String8 0 1 0 automatic_index 00 r[1]='automatic_index' 8 ResultRow 1 1 0 00 output=r[1] 9 ResultRow 1 1 0 00 output=r[1] I did comment out those same 4 lines. I suppose it has to be something in my application code. pragma database_list works fine though with this explain output: addr opcode p1 p2 p3 p4 p5 comment 0 Init 0 1 0 00 Start at 1 1 Integer 0 1 0 00 r[1]=0 2 String8 0 2 0 main 00 r[2]='main' 3 String8 0 3 0 C:\Test\Test.db3 00 r[3]='C:\Test\Test.db3' 4 ResultRow 1 3 0 00 output=r[1..3] 5 Halt 0 0 0 00 No idea what is going on. RBS On Fri, Aug 25, 2017 at 10:08 PM, Keith Medcalf <kmedc...@dessus.com> wrote: > > Doesn't help a lot. Works for me though with the standard 3.20.0 release > though ... > > SQLite version 3.20.0 2017-08-01 13:24:15 > Enter ".help" for usage hints. > Connected to a transient in-memory database. > Use ".open FILENAME" to reopen on a persistent database. > sqlite> .eqp full > sqlite> select sqlite_source_id(); > addr opcode p1 p2 p3 p4 p5 comment > ---- ------------- ---- ---- ---- ------------- -- ------------- > 0 Init 0 6 0 00 Start at 6 > 1 Noop 0 0 0 00 Begin WHERE-core > 2 Copy 2 1 0 00 r[1]=r[2] > 3 ResultRow 1 1 0 00 output=r[1] > 4 Noop 0 0 0 00 End WHERE-core > 5 Halt 0 0 0 00 > 6 Function0 0 0 2 sqlite_source_id(0) 00 > r[2]=func(r[0]) > 7 Goto 0 1 0 00 > 2017-08-01 13:24:15 9501e22dfeebdcefa783575e47c60b > 514d7c2e0cad73b2a496c0bc4b680900a8 > sqlite> pragma module_list; > addr opcode p1 p2 p3 p4 p5 comment > ---- ------------- ---- ---- ---- ------------- -- ------------- > 0 Init 0 1 0 00 Start at 1 > 1 String8 0 1 0 sqlite_stmt 00 > r[1]='sqlite_stmt' > 2 ResultRow 1 1 0 00 output=r[1] > 3 String8 0 1 0 json_tree 00 r[1]='json_tree' > 4 ResultRow 1 1 0 00 output=r[1] > 5 String8 0 1 0 rtree_i32 00 r[1]='rtree_i32' > 6 ResultRow 1 1 0 00 output=r[1] > 7 String8 0 1 0 fts3tokenize 00 > r[1]='fts3tokenize' > 8 ResultRow 1 1 0 00 output=r[1] > 9 String8 0 1 0 fts3 00 r[1]='fts3' > 10 ResultRow 1 1 0 00 output=r[1] > 11 String8 0 1 0 fts4aux 00 r[1]='fts4aux' > 12 ResultRow 1 1 0 00 output=r[1] > 13 String8 0 1 0 interpolate 00 > r[1]='interpolate' > 14 ResultRow 1 1 0 00 output=r[1] > 15 String8 0 1 0 vfsstat 00 r[1]='vfsstat' > 16 ResultRow 1 1 0 00 output=r[1] > 17 String8 0 1 0 dbstat 00 r[1]='dbstat' > 18 ResultRow 1 1 0 00 output=r[1] > 19 String8 0 1 0 rtree 00 r[1]='rtree' > 20 ResultRow 1 1 0 00 output=r[1] > 21 String8 0 1 0 carray 00 r[1]='carray' > 22 ResultRow 1 1 0 00 output=r[1] > 23 String8 0 1 0 fts5 00 r[1]='fts5' > 24 ResultRow 1 1 0 00 output=r[1] > 25 String8 0 1 0 json_each 00 r[1]='json_each' > 26 ResultRow 1 1 0 00 output=r[1] > 27 String8 0 1 0 approximate_match 00 > r[1]='approximate_match' > 28 ResultRow 1 1 0 00 output=r[1] > 29 String8 0 1 0 fts4 00 r[1]='fts4' > 30 ResultRow 1 1 0 00 output=r[1] > 31 String8 0 1 0 transitive_closure 00 > r[1]='transitive_closure' > 32 ResultRow 1 1 0 00 output=r[1] > 33 String8 0 1 0 completion 00 r[1]='completion' > 34 ResultRow 1 1 0 00 output=r[1] > 35 String8 0 1 0 fuzzer 00 r[1]='fuzzer' > 36 ResultRow 1 1 0 00 output=r[1] > 37 String8 0 1 0 spellfix1 00 r[1]='spellfix1' > 38 ResultRow 1 1 0 00 output=r[1] > 39 String8 0 1 0 wholenumber 00 > r[1]='wholenumber' > 40 ResultRow 1 1 0 00 output=r[1] > 41 String8 0 1 0 fts5vocab 00 r[1]='fts5vocab' > 42 ResultRow 1 1 0 00 output=r[1] > 43 String8 0 1 0 generate_series 00 > r[1]='generate_series' > 44 ResultRow 1 1 0 00 output=r[1] > 45 String8 0 1 0 csv 00 r[1]='csv' > 46 ResultRow 1 1 0 00 output=r[1] > 47 Halt 0 0 0 00 > sqlite_stmt > json_tree > rtree_i32 > fts3tokenize > fts3 > fts4aux > interpolate > vfsstat > dbstat > rtree > carray > fts5 > json_each > approximate_match > fts4 > transitive_closure > completion > fuzzer > spellfix1 > wholenumber > fts5vocab > generate_series > csv > sqlite> > > sqlite3.c > > #ifdef SQLITE_INTROSPECTION_PRAGMAS > case PragTyp_FUNCTION_LIST: { > int i; > HashElem *j; > FuncDef *p; > pParse->nMem = 2; > for(i=0; i<SQLITE_FUNC_HASH_SZ; i++){ > for(p=sqlite3BuiltinFunctions.a[i]; p; p=p->u.pHash ){ > sqlite3VdbeMultiLoad(v, 1, "si", p->zName, 1); > // sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 2); > } > } > for(j=sqliteHashFirst(&db->aFunc); j; j=sqliteHashNext(j)){ > p = (FuncDef*)sqliteHashData(j); > sqlite3VdbeMultiLoad(v, 1, "si", p->zName, 0); > // sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 2); > } > } > break; > > #ifndef SQLITE_OMIT_VIRTUALTABLE > case PragTyp_MODULE_LIST: { > HashElem *j; > pParse->nMem = 1; > for(j=sqliteHashFirst(&db->aModule); j; j=sqliteHashNext(j)){ > Module *pMod = (Module*)sqliteHashData(j); > sqlite3VdbeMultiLoad(v, 1, "s", pMod->zName); > // sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); > } > } > break; > #endif /* SQLITE_OMIT_VIRTUALTABLE */ > > case PragTyp_PRAGMA_LIST: { > int i; > for(i=0; i<ArraySize(aPragmaName); i++){ > sqlite3VdbeMultiLoad(v, 1, "s", aPragmaName[i].zName); > // sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); > } > } > break; > #endif /* SQLITE_INTROSPECTION_PRAGMAS */ > > > --- > The fact that there's a Highway to Hell but only a Stairway to Heaven says > a lot about anticipated traffic volume. > > > >-----Original Message----- > >From: sqlite-users [mailto:sqlite-users- > >boun...@mailinglists.sqlite.org] On Behalf Of Bart Smissaert > >Sent: Friday, 25 August, 2017 14:57 > >To: SQLite mailing list > >Subject: Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, > >function_list, module_list > > > >The standard 3.20.0, second down on this page: > >https://www.sqlite.org/download.html > > > >Noticed though there is a new version and will try that one. > > > >RBS > > > >On Fri, Aug 25, 2017 at 9:48 PM, Keith Medcalf <kmedc...@dessus.com> > >wrote: > > > >> > >> Which amalgamation? > >> > >> > >> > >> --- > >> The fact that there's a Highway to Hell but only a Stairway to > >Heaven says > >> a lot about anticipated traffic volume. > >> > >> > >> >-----Original Message----- > >> >From: sqlite-users [mailto:sqlite-users- > >> >boun...@mailinglists.sqlite.org] On Behalf Of Bart Smissaert > >> >Sent: Friday, 25 August, 2017 14:13 > >> >To: SQLite mailing list > >> >Subject: Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, > >> >function_list, module_list > >> > > >> >I copied the exact code block as in > >> >http://www.sqlite.org/src/info/b79cc8dc88c8ae03 > >> >compiled in MSVS, no errors and dll works fine, but still > >duplicate > >> >output. > >> >This is in Windows 8. > >> >I compiled the edited amalgation. I checked in Notepad that > >sqlite3.c > >> >had > >> >indeed the needed changes > >> >and it had, so no idea why I still get the duplicates. Must be > >some > >> >silly > >> >mistake I am making, but no idea what. > >> > > >> >RBS > >> > > >> > > >> >On Fri, Aug 25, 2017 at 8:28 PM, Keith Medcalf > ><kmedc...@dessus.com> > >> >wrote: > >> > > >> >> > >> >> Thanks Dan. That works for me ... > >> >> > >> >> --- > >> >> The fact that there's a Highway to Hell but only a Stairway to > >> >Heaven says > >> >> a lot about anticipated traffic volume. > >> >> > >> >> > >> >> >-----Original Message----- > >> >> >From: sqlite-users [mailto:sqlite-users- > >> >> >boun...@mailinglists.sqlite.org] On Behalf Of Dan Kennedy > >> >> >Sent: Friday, 25 August, 2017 03:45 > >> >> >To: sqlite-users@mailinglists.sqlite.org > >> >> >Subject: Re: [sqlite] FIX FOR:: Duplicate output with > >pragma_list, > >> >> >function_list, module_list > >> >> > > >> >> >On 08/25/2017 06:41 AM, Keith Medcalf wrote: > >> >> >> If you search sqlite3.c for the SQLITE3_INTROSPECTION_PRAGMAS > >> >you > >> >> >will see in pragma.c (or in sqlite3.c) the following code: > >> >> > > >> >> >Thanks for looking into this. Now fixed here: > >> >> > > >> >> > http://www.sqlite.org/src/info/b79cc8dc88c8ae03 > >> >> > > >> >> >Dan. > >> >> > > >> >> > > >> >> >_______________________________________________ > >> >> >sqlite-users mailing list > >> >> >sqlite-users@mailinglists.sqlite.org > >> >> >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite- > >> >users > >> >> > >> >> > >> >> > >> >> _______________________________________________ > >> >> sqlite-users mailing list > >> >> sqlite-users@mailinglists.sqlite.org > >> >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite- > >> >users > >> >> > >> >_______________________________________________ > >> >sqlite-users mailing list > >> >sqlite-users@mailinglists.sqlite.org > >> >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite- > >users > >> > >> > >> > >> _______________________________________________ > >> sqlite-users mailing list > >> sqlite-users@mailinglists.sqlite.org > >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite- > >users > >> > >_______________________________________________ > >sqlite-users mailing list > >sqlite-users@mailinglists.sqlite.org > >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users