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