Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
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 <kmedc...@dessus.com> 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- > >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 p1p2p3p4 p5 comment > >> - - -- - > > > >> 0 Init 0 6 000 Start at > >6 > >> 1 Noop 0 0 000 Begin > >WHERE-core > >> 2 Copy 2 1 000 r[1]=r[2] > >> 3 ResultRow 1 1 000 > >output=r[1] > >> 4 Noop 0 0 000 End > >WHERE-core > >> 5 Halt 0 0 000 > >> 6 Function0 0 0 2 sqlite_source_id(0) 00 > >> r[2]=func(r[0]) > >> 7 Goto 0 1 000 > >> 2017-08-01 13:24:15 9501e22dfeebdcefa783575e47c60b > >> 514d7c2e0cad73b2a496c0bc4b680900a8 > >> sqlite> pragma module_list; > >> addr opcode p1p2p3p4 p5 comment > >> - - -- - > > > >> 0 Init 0 1 000 Start at > >1 > >> 1 String80 1 0 sqlite_stmt00 > >> r[1]='sqlite_stmt' > >> 2 ResultRow 1 1 000 > >output=r[1] > >> 3 String80 1 0 json_tree 00 > >r[1]='json_tree' > >> 4 ResultRow 1 1 000 > >output=r[1] > >> 5 String80 1
Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
> 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 <kmedc...@dessus.com> 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- > >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 p1p2p3p4 p5 comment > >> - - -- - > > > >> 0 Init 0 6 000 Start at > >6 > >> 1 Noop 0 0 000 Begin > >WHERE-core > >> 2 Copy 2 1 000 r[1]=r[2] > >> 3 ResultRow 1 1 000 > >output=r[1] > >> 4 Noop 0 0 000 End > >WHERE-core > >> 5 Halt 0 0 000 > >> 6 Function0 0 0 2 sqlite_source_id(0) 00 > >> r[2]=func(r[0]) > >> 7 Goto 0 1 000 > >> 2017-08-01 13:24:15 9501e22dfeebdcefa783575e47c60b > >> 514d7c2e0cad73b2a496c0bc4b680900a8 > >> sqlite> pragma module_list; > >> addr opcode p1p2p3p4 p5 comment > >> - - -- - > > > >> 0 Init 0 1 000 Start at > >1 > >> 1 String80 1 0 sqlite_stmt00 > >> r[1]='sqlite_stmt' > >> 2 ResultRow 1 1 000 > >output=r[1] > >> 3 String80 1 0 json_tree 00 > >r[1]='json_tree' > >> 4 ResultRow 1 1 000 > >output=r[1] > >> 5 String80 1 0 rtree_i32 00 > >r[1]='rtree_i32' > >> 6 ResultRow 1 1 000 > >output=r[1
Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
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 p1p2p3p4 p5 comment >> - - -- - > >> 0 Init 0 6 000 Start at >6 >> 1 Noop 0 0 000 Begin >WHERE-core >> 2 Copy 2 1 000 r[1]=r[2] >> 3 ResultRow 1 1 000 >output=r[1] >> 4 Noop 0 0 000 End >WHERE-core >> 5 Halt 0 0 000 >> 6 Function0 0 0 2 sqlite_source_id(0) 00 >> r[2]=func(r[0]) >> 7 Goto 0 1 000 >> 2017-08-01 13:24:15 9501e22dfeebdcefa783575e47c60b >> 514d7c2e0cad73b2a496c0bc4b680900a8 >> sqlite> pragma module_list; >> addr opcode p1p2p3p4 p5 comment >> - - -- - > >> 0 Init 0 1 000 Start at >1 >> 1 String80 1 0 sqlite_stmt00 >> r[1]='sqlite_stmt' >> 2 ResultRow 1 1 000 >output=r[1] >> 3 String80 1 0 json_tree 00 >r[1]='json_tree' >> 4 ResultRow 1 1 000 >output=r[1] >> 5 String80 1 0 rtree_i32 00 >r[1]='rtree_i32' >> 6 ResultRow 1 1 000 >output=r[1] >> 7 String80 1 0 fts3tokenize 00 >> r[1]='fts3tokenize' >> 8 ResultRow 1 1 000 >output=r[1] >> 9 String80 1 0 fts3 00 >r[1]='fts3' >> 10ResultRow 1 1 000 >output=r[1] >> 11String80 1 0 fts4aux00 >r[1]='fts4aux' >> 12ResultRow 1 1 000 >output=r[1] >> 13String80 1 0 interpolate00 >> r[1]='interpolate' >> 14ResultRow 1 1 000 >output=r[1] >> 15String80 1 0 vfsstat00 >r[1]='vfsstat' >> 16ResultRow 1 1 0
Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
00 output=r[1] > 33String80 1 0 completion 00 r[1]='completion' > 34ResultRow 1 1 000 output=r[1] > 35String80 1 0 fuzzer 00 r[1]='fuzzer' > 36ResultRow 1 1 000 output=r[1] > 37String80 1 0 spellfix1 00 r[1]='spellfix1' > 38ResultRow 1 1 000 output=r[1] > 39String80 1 0 wholenumber00 > r[1]='wholenumber' > 40ResultRow 1 1 000 output=r[1] > 41String80 1 0 fts5vocab 00 r[1]='fts5vocab' > 42ResultRow 1 1 000 output=r[1] > 43String80 1 0 generate_series 00 > r[1]='generate_series' > 44ResultRow 1 1 000 output=r[1] > 45String80 1 0 csv00 r[1]='csv' > 46ResultRow 1 1 000 output=r[1] > 47Halt 0 0 000 > 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(>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(>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
Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
sv 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(>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(>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 >> >> >> >
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
Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
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
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
Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
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
Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
I applied this fix, but still get the duplicate output. RBS On Fri, Aug 25, 2017 at 10:45 AM, Dan Kennedywrote: > 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
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
Re: [sqlite] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
I removed (commented out) all the lines with sqlite3VdbeAddOp2 in that mentioned code block, so that is 4 code lines. Still I get the duplicate output. I am using the the 3.20.0 amalgation. RBS On Fri, Aug 25, 2017 at 12:41 AM, Keith Medcalfwrote: > > If you search sqlite3.c for the SQLITE3_INTROSPECTION_PRAGMAS you will see > in pragma.c (or in sqlite3.c) the following code: > > #ifdef SQLITE_INTROSPECTION_PRAGMAS > case PragTyp_FUNCTION_LIST: { > int i; > HashElem *j; > FuncDef *p; > pParse->nMem = 2; > for(i=0; 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(>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(>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 sqlite3VdbeMultiLoad(v, 1, "s", aPragmaName[i].zName); > sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); > } > } > break; > #endif /* SQLITE_INTROSPECTION_PRAGMAS */ > > In each, the sqlite3VdbeAddOp2 should be removed. sqlite3VdbeMultiLoad, > as well as adding the data to the vdbe program also generates an > OP_ResultRow instruction ... > > --- > 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: Thursday, 24 August, 2017 14:53 > >To: General Discussion of SQLite Database > >Subject: [sqlite] Duplicate output with pragma_list, function_list, > >module_list > > > >The pragma names and function names are duplicated with these > >pragma's. > >Is this a bug? > > > >RBS > >___ > >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] FIX FOR:: Duplicate output with pragma_list, function_list, module_list
If you search sqlite3.c for the SQLITE3_INTROSPECTION_PRAGMAS you will see in pragma.c (or in sqlite3.c) the following code: #ifdef SQLITE_INTROSPECTION_PRAGMAS case PragTyp_FUNCTION_LIST: { int i; HashElem *j; FuncDef *p; pParse->nMem = 2; for(i=0; iu.pHash ){ sqlite3VdbeMultiLoad(v, 1, "si", p->zName, 1); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 2); } } for(j=sqliteHashFirst(>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(>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 -Original Message- >From: sqlite-users [mailto:sqlite-users- >boun...@mailinglists.sqlite.org] On Behalf Of Bart Smissaert >Sent: Thursday, 24 August, 2017 14:53 >To: General Discussion of SQLite Database >Subject: [sqlite] Duplicate output with pragma_list, function_list, >module_list > >The pragma names and function names are duplicated with these >pragma's. >Is this a bug? > >RBS >___ >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