Group,
 

Using sqlite-3.3.5 along with Tcl8.4.11 and Tk8.4.11, the EXPLAIN
command doesn't produce the desired result.  EXPLAIN is used for
interpreting SELECT, INSERT, DELETE, UPDATE SQL commands.  It appears to
be retrieving insufficent opcodes and erroneous data that don't return a
result from the SQL call.  Performing the same with sqlite 2.8.13
produces the desired results. Does anyone know what is causing this?

 

sqlite-3.3.5 produces the following: 

 

set ecmd "SELECT * FROM x"

foreach {addr opcode p1 p2 p3} [db eval "EXPLAIN $ecmd"] {

    puts "addr=$addr, opcode=$opcode, p1=$p1, p2=$p2, p3=$p3"

 

ecmd=select * from x

prefix=SELECT

addr=0, opcode=Goto, p1=0, p2=14, p3=

addr=1, opcode=Integer, p1=0, p2=0, p3=

addr=2, opcode=OpenRead, p1=0, p2=9, p3=

addr=3, opcode=SetNumColumns, p1=0, p2=5, p3=

addr=4, opcode=Rewind, p1=0, p2=12, p3=

addr=5, opcode=Column, p1=0, p2=0, p3=

addr=6, opcode=Column, p1=0, p2=1, p3=

addr=7, opcode=Column, p1=0, p2=2, p3=

addr=8, opcode=Column, p1=0, p2=3, p3=

addr=9, opcode=Column, p1=0, p2=4, p3=

addr=10, opcode=Callback, p1=5, p2=0, p3=

 

sqlite-3.3.5 EXPLAIN does not produce the desired results.

 

 

sqlite-2.8.13 produces the following:

 

ecmd=select * from x

prefix=SELECT

addr=0, opcode=ColumnName, p1=0, p2=0, p3=ABC

addr=1, opcode=ColumnName, p1=1, p2=0, p3=DEF

addr=2, opcode=ColumnName, p1=2, p2=0, p3=GHI

addr=3, opcode=ColumnName, p1=3, p2=0, p3=JKL

addr=4, opcode=ColumnName, p1=4, p2=1, p3=MNO

addr=5, opcode=ColumnName, p1=5, p2=0, p3=varchar(8)

addr=6, opcode=ColumnName, p1=6, p2=0, p3=varchar(50)

addr=7, opcode=ColumnName, p1=7, p2=0, p3=smallint

addr=8, opcode=ColumnName, p1=8, p2=0, p3=smallint

addr=9, opcode=ColumnName, p1=9, p2=0, p3=smallint

addr=10, opcode=Integer, p1=0, p2=0, p3=

addr=11, opcode=OpenRead, p1=0, p2=8, p3=casualty

addr=12, opcode=VerifyCookie, p1=0, p2=14357, p3=

addr=13, opcode=Rewind, p1=0, p2=21, p3=

addr=14, opcode=Column, p1=0, p2=0, p3=

addr=15, opcode=Column, p1=0, p2=1, p3=

addr=16, opcode=Column, p1=0, p2=2, p3=

addr=17, opcode=Column, p1=0, p2=3, p3=

addr=18, opcode=Column, p1=0, p2=4, p3=

addr=19, opcode=Callback, p1=5, p2=0, p3=

 

sqlite-2.8.13 EXPLAIN produces the desired result. 

 

TIA

Reply via email to