Interesting. That would indicate that the code where you commented out the extra ResultRow OP is still being executed. Which it cannot be if you re-compiled the code and generated a new executable/dll/so with those instructions commented out.
So I think somehow your compiler is not actually updating what you are running, or that you are not running what you think you are compiling ... --- 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 15:25 >To: SQLite mailing list >Subject: Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, >function_list, module_list > >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 _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users