Fixed this now. Problem was that in the same folder as the MSVS .vcxproj file there was an old amalgation file. Somehow this must have been used although in MSVS the right sqlite3.c file (3.20.1) was loaded and this new file seemed to be part of the project. Fixed it by putting that 3.20.1 sqlite3.c file in the same folder as the .vcxproj file. Confusing thing that MSVS!
RBS On Fri, Aug 25, 2017 at 10:31 PM, Keith Medcalf <[email protected]> wrote: > > 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- > >[email protected]] 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 <[email protected]> > >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- > >> >[email protected]] 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 > ><[email protected]> > >> >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- > >> >> >[email protected]] 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 > >> ><[email protected]> > >> >> >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- > >> >> >> >[email protected]] On Behalf Of Dan Kennedy > >> >> >> >Sent: Friday, 25 August, 2017 03:45 > >> >> >> >To: [email protected] > >> >> >> >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 > >> >> >> >[email protected] > >> >> >> >http://mailinglists.sqlite.org/cgi- > >bin/mailman/listinfo/sqlite- > >> >> >users > >> >> >> > >> >> >> > >> >> >> > >> >> >> _______________________________________________ > >> >> >> sqlite-users mailing list > >> >> >> [email protected] > >> >> >> http://mailinglists.sqlite.org/cgi- > >bin/mailman/listinfo/sqlite- > >> >> >users > >> >> >> > >> >> >_______________________________________________ > >> >> >sqlite-users mailing list > >> >> >[email protected] > >> >> >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite- > >> >users > >> >> > >> >> > >> >> > >> >> _______________________________________________ > >> >> sqlite-users mailing list > >> >> [email protected] > >> >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite- > >> >users > >> >> > >> >_______________________________________________ > >> >sqlite-users mailing list > >> >[email protected] > >> >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite- > >users > >> > >> > >> > >> _______________________________________________ > >> sqlite-users mailing list > >> [email protected] > >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite- > >users > >> > >_______________________________________________ > >sqlite-users mailing list > >[email protected] > >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > > _______________________________________________ > sqlite-users mailing list > [email protected] > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list [email protected] http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

