> 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 ...

Yes, that seems the case, but can't see it. Will just double check
everything.

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

Reply via email to