32 KiB
32 KiB
Summary
**No review yet**Minimized query
.timeout -1
BEGIN;
PRAGMA case_sensitive_like = OFF;
.eqp full
ATTACH DATABASE ':memory:' AS aux5;
.stats vmstep
PRAGMA wal_checkpoint('PASSIVE');
.prompt 'IPA eli isopropanoli on loistava puhdistusaine joka irrataa'
.width -(-((x'ff77' + jsonb_array(CAST(pi() AS DOUB))))) hex(unlikely(replace(x'449094d71496db26fb', '', 'x'))) NULL
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
-- PRAGMA empty_result_callbacks;
INSERT INTO t1 VALUES (CAST(nullif(-(-(1 ->> '$[0]')), NULL) AS CHAR(10)), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
.dump
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (cosh(1),1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT (NOT b >= -2.5 AND b < 2.0)) ;
REINDEX T;
UPDATE T SET b = CURRENT_TIMESTAMP WHERE 1 RETURNING *;
INSERT INTO T SELECT * FROM T;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE +a > 0);
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -9223372036854775808);
INSERT INTO T VALUES ('b', 'q', 4000);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('d', 'r', 9223372036854775807);
INSERT INTO T VALUES ('e', 's', 0);
SELECT A, C FROM T WHERE +C > 1200 AND C < 9999999999 ORDER BY C;
WITH m AS MATERIALIZED (SELECT * FROM T) SELECT m.a FROM m NATURAL JOIN m AS m2 ON m.a = m2.a;
ALTER TABLE T ADD COLUMN extra_7396 FLOA COLLATE NOCASE;
ALTER TABLE T ADD COLUMN extra_5763 BIGINT DEFAULT NULL;
SELECT * FROM T WHERE a IN (SELECT DISTINCT a FROM T);
DELETE FROM T WHERE +rowid = 52;
DELETE FROM T WHERE 1;
SELECT STRING_AGG(b) FROM T;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_150 ON T((a + 1));
ALTER TABLE T RENAME COLUMN B TO B_r1410;
ALTER TABLE t1 DROP COLUMN a;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
ALTER TABLE t1 DROP COLUMN d;
VACUUM;
INSERT INTO T SELECT * FROM T;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_2079 ON T(C COLLATE NOCASE) WHERE C IS NOT NULL;
INSERT INTO T VALUES (1, 1, 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
SELECT * FROM t1;
ANALYZE;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE _m (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
ANALYZE T2;
VACUUM main;
ALTER TABLE T ADD COLUMN extra_276 INT8 COLLATE RTRIM;
DROP TABLE IF EXISTS t1;
SELECT COUNT(*) FILTER (WHERE C IS NOT NULL), SUM(rowid) FILTER (WHERE C > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(C) FILTER (WHERE C > 0 AND C < 100), COUNT(*) FILTER (WHERE typeof(C) = "text") FROM T2;
SELECT COUNT(*) FROM T;
INSERT INTO T2 VALUES (NULL, NULL, NULL);
ALTER TABLE T RENAME COLUMN A TO A_r7435;
SELECT SUM(a) OVER (ORDER BY a) FROM t1;
SELECT * FROM T2;
CREATE TEMP VIEW IF NOT EXISTS v_T1_1714 AS SELECT B FROM T1;
REINDEX;
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
SELECT * FROM T1 AS a LEFT OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT STRING_AGG(A, '|') FROM T2;
REINDEX t1;
INSERT INTO T VALUES (1, NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
INSERT OR REPLACE INTO t1 VALUES (0, 7, 4, -10);
CREATE TEMP VIEW IF NOT EXISTS v_T_4522 AS SELECT
b FROM T;
PRAGMA defer_foreign_keys = TRUE;
ALTER TABLE T RENAME COLUMN c TO c_r3156;
SELECT * FROM T AS a FULL JOIN T1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux5;
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT AVG(a) FROM t1;
PRAGMA auto_vacuum = FULL;
ALTER TABLE T ADD COLUMN extra_265 DOUB UNIQUE;
DROP INDEX IF EXISTS t1;
END TRANSACTION;
WITH a AS (SELECT * FROM _m), b AS (SELECT * FROM _m) SELECT * FROM a UNION ALL SELECT * FROM b;
Actual output
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 1 0 0 Start at 1
1 String8 0 1 0 :memory: 0 r[1]=':memory:'
2 String8 0 2 0 aux5 0 r[2]='aux5'
3 Null 0 3 0 0 r[3]=NULL
4 Function 0 1 4 sqlite_attach(3) 0 r[4]=func(r[1..3])
5 Expire 1 0 0 0
6 Halt 0 0 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 1 0 0 Start at 1
1 Expire 1 1 0 0
2 Checkpoint 12 0 1 0
3 ResultRow 1 3 0 0 output=r[1..3]
4 Halt 0 0 0 0
0|-1|-1
VM-steps: 5
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 ReadCookie 0 3 2 0
2 If 3 5 0 0
3 SetCookie 0 2 4 0
4 SetCookie 0 5 1 0
5 CreateBtree 0 2 1 0 r[2]=root iDb=0 flags=1
6 OpenWrite 0 1 0 5 0 root=1 iDb=0
7 NewRowid 0 1 0 0 r[1]=rowid
8 Blob 6 3 0 0 r[3]= (len=6)
9 Insert 0 3 1 8 intkey=r[1] data=r[3]
10 Close 0 0 0 0
11 Close 0 0 0 0
12 Null 0 4 5 0 r[4..5]=NULL
13 Noop 2 0 4 0
14 OpenWrite 1 1 0 5 0 root=1 iDb=0; sqlite_master
15 SeekRowid 1 17 1 0 intkey=r[1]
16 Rowid 1 5 0 0 r[5]=[P2]=PX rowid of P1
17 IsNull 5 25 0 0 if r[5]==NULL goto 25
18 String8 0 6 0 table 0 r[6]='table'
19 String8 0 7 0 t1 0 r[7]='t1'
20 String8 0 8 0 t1 0 r[8]='t1'
21 SCopy 2 9 0 0 r[9]=r[2]
22 String8 0 10 0 CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT) 0 r[10]='CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT)'
23 MakeRecord 6 5 4 BBBDB 0 r[4]=mkrec(r[6..10])
24 Insert 1 4 5 0 intkey=r[5] data=r[4]
25 SetCookie 0 1 1 0
26 ParseSchema 0 0 0 tbl_name='t1' AND type!='trigger' 0
27 Halt 0 0 0 0
28 Transaction 0 1 0 0 1 usesStmtJournal=1
29 Goto 0 1 0 0
VM-steps: 30
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 Wernher 0 r[3]='Wernher'
4 Integer 10 4 0 0 r[4]=10
5 Integer 100 5 0 0 r[5]=100
6 Once 0 17 0 0
7 Integer 0 10 0 0 r[10]=0
8 Integer 0 12 0 0 r[12]=0
9 Integer 1 14 0 0 r[14]=1
10 String8 0 15 0 $[0] 0 r[15]='$[0]'
11 Function 3 14 13 ->>(2) 0 r[13]=func(r[14..15])
12 Subtract 13 12 11 0 r[11]=r[12]-r[13]
13 Subtract 11 10 8 0 r[8]=r[10]-r[11]
14 Null 0 9 0 0 r[9]=NULL
15 CollSeq 0 0 0 BINARY-8 0
16 Function 3 8 7 nullif(2) 0 r[7]=func(r[8..9])
17 SCopy 7 1 0 0 r[1]=r[7]
18 Cast 1 66 0 0 affinity(r[1])
19 NotNull 1 21 0 0 if r[1]!=NULL goto 21
20 NewRowid 0 1 0 0 r[1]=rowid
21 MustBeInt 1 0 0 0
22 Noop 0 0 0 0 uniqueness check for ROWID
23 NotExists 0 25 1 0 intkey=r[1]
24 Halt 1555 2 0 t1.a 2
25 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
26 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
27 Halt 0 0 0 0
28 Transaction 0 1 1 0 1 usesStmtJournal=0
29 Goto 0 1 0 0
VM-steps: 29
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 von 0 r[3]='von'
4 Integer 20 4 0 0 r[4]=20
5 Integer 200 5 0 0 r[5]=200
6 Integer 2 1 0 0 r[1]=2
7 NotNull 1 9 0 0 if r[1]!=NULL goto 9
8 NewRowid 0 1 0 0 r[1]=rowid
9 MustBeInt 1 0 0 0
10 Noop 0 0 0 0 uniqueness check for ROWID
11 NotExists 0 13 1 0 intkey=r[1]
12 Halt 1555 2 0 t1.a 2
13 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
14 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
15 Halt 0 0 0 0
16 Transaction 0 1 1 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
VM-steps: 16
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 Braun 0 r[3]='Braun'
4 Integer 30 4 0 0 r[4]=30
5 Integer 300 5 0 0 r[5]=300
6 Integer 3 1 0 0 r[1]=3
7 NotNull 1 9 0 0 if r[1]!=NULL goto 9
8 NewRowid 0 1 0 0 r[1]=rowid
9 MustBeInt 1 0 0 0
10 Noop 0 0 0 0 uniqueness check for ROWID
11 NotExists 0 13 1 0 intkey=r[1]
12 Halt 1555 2 0 t1.a 2
13 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
14 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
15 Halt 0 0 0 0
16 Transaction 0 1 1 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
VM-steps: 16
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 34 0 0 Start at 34
1 Noop 0 33 0 0
2 CreateBtree 0 1 2 0 r[1]=root iDb=0 flags=2
3 OpenWrite 0 1 0 5 0 root=1 iDb=0; sqlite_master
4 String8 0 3 0 index 0 r[3]='index'
5 String8 0 4 0 t1bc 0 r[4]='t1bc'
6 String8 0 5 0 t1 0 r[5]='t1'
7 SCopy 1 6 0 0 r[6]=r[1]
8 String8 0 7 0 CREATE INDEX t1bc ON t1(b, c) 0 r[7]='CREATE INDEX t1bc ON t1(b, c)'
9 NewRowid 0 2 0 0 r[2]=rowid
10 MakeRecord 3 5 8 BBBDB 0 r[8]=mkrec(r[3..7])
11 Insert 0 8 2 24 intkey=r[2] data=r[8]
12 SorterOpen 3 0 2 k(3,,,) 0
13 OpenRead 1 2 0 4 0 root=2 iDb=0; t1
14 Rewind 1 21 0 0
15 Column 1 1 10 0 r[10]=t1.b
16 Column 1 2 11 0 r[11]=t1.c
17 Rowid 1 12 0 0 r[12]=t1.rowid
18 MakeRecord 10 3 9 0 r[9]=mkrec(r[10..12])
19 SorterInsert 3 9 0 0 key=r[9]
20 Next 1 15 0 0
21 OpenWrite 2 1 0 k(3,,,) 17 root=1 iDb=0
22 SorterSort 3 27 0 0
23 SorterData 3 9 2 0 r[9]=data
24 SeekEnd 2 0 0 0
25 IdxInsert 2 9 0 16 key=r[9]
26 SorterNext 3 23 0 0
27 Close 1 0 0 0
28 Close 2 0 0 0
29 Close 3 0 0 0
30 SetCookie 0 1 2 0
31 ParseSchema 0 0 0 name='t1bc' AND type='index' 0
32 Expire 0 1 0 0
33 Halt 0 0 0 0
34 Transaction 0 1 1 0 1 usesStmtJournal=1
35 Goto 0 1 0 0
VM-steps: 56
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 1 0 0 Start at 1
1 Expire 1 1 0 0
2 Expire 0 0 0 0
3 Halt 0 0 0 0
VM-steps: 4
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
QUERY PLAN
`--SCAN t2
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 9 0 0 Start at 9
1 OpenRead 1 3 0 k(3,,,) 0 root=3 iDb=0; sqlite_autoindex_t2_1
2 Rewind 1 8 1 0 0
3 Column 1 0 1 0 r[1]=t2.b
4 Column 1 1 2 0 r[2]=t2.c
5 Column 1 2 3 0 r[3]=t2._ROWID_
6 ResultRow 1 3 0 0 output=r[1..3]
7 Next 1 3 0 1
8 Halt 0 0 0 0
9 Transaction 0 0 2 0 1 usesStmtJournal=0
10 Goto 0 1 0 0
Braun|30|3
Wernher|10|1
von|20|2
VM-steps: 21
QUERY PLAN
`--SCAN t1 USING COVERING INDEX t1bc
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 9 0 0 Start at 9
1 Noop 1 5 0 0
2 OpenRead 2 3 0 k(3,,,) 0 root=3 iDb=0; t1bc
3 Rewind 2 8 1 0 0
4 Column 2 0 1 0 r[1]=t1.b
5 Column 2 1 2 0 r[2]=t1.c
6 ResultRow 1 2 0 0 output=r[1..2]
7 Next 2 4 0 1
8 Halt 0 0 0 0
9 Transaction 0 0 2 0 1 usesStmtJournal=0
10 Goto 0 1 0 0
Braun|30
Wernher|10
von|20
VM-steps: 19
Expectation
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 7 0 0 Start at 7
1 String8 0 1 0 :memory: 0 r[1]=':memory:'
2 String8 0 2 0 aux5 0 r[2]='aux5'
3 Null 0 3 0 0 r[3]=NULL
4 Function 0 1 4 sqlite_attach(3) 0 r[4]=func(r[1..3])
5 Expire 1 0 0 0
6 Halt 0 0 0 0
7 Goto 0 1 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 5 0 0 Start at 5
1 Expire 1 1 0 0
2 Checkpoint 12 0 1 0
3 ResultRow 1 3 0 0 output=r[1..3]
4 Halt 0 0 0 0
5 Goto 0 1 0 0
0|-1|-1
VM-steps: 6
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 ReadCookie 0 3 2 0
2 If 3 5 0 0
3 SetCookie 0 2 4 0
4 SetCookie 0 5 1 0
5 CreateBtree 0 2 1 0 r[2]=root iDb=0 flags=1
6 OpenWrite 0 1 0 5 0 root=1 iDb=0
7 NewRowid 0 1 0 0 r[1]=rowid
8 Blob 6 3 0 0 r[3]= (len=6)
9 Insert 0 3 1 8 intkey=r[1] data=r[3]
10 Close 0 0 0 0
11 Close 0 0 0 0
12 Null 0 4 5 0 r[4..5]=NULL
13 Noop 2 0 4 0
14 OpenWrite 1 1 0 5 0 root=1 iDb=0; sqlite_master
15 SeekRowid 1 17 1 0 intkey=r[1]
16 Rowid 1 5 0 0 r[5]= rowid of 1
17 IsNull 5 25 0 0 if r[5]==NULL goto 25
18 String8 0 6 0 table 0 r[6]='table'
19 String8 0 7 0 t1 0 r[7]='t1'
20 String8 0 8 0 t1 0 r[8]='t1'
21 Copy 2 9 0 0 r[9]=r[2]
22 String8 0 10 0 CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT) 0 r[10]='CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT)'
23 MakeRecord 6 5 4 BBBDB 0 r[4]=mkrec(r[6..10])
24 Insert 1 4 5 0 intkey=r[5] data=r[4]
25 SetCookie 0 1 1 0
26 ParseSchema 0 0 0 tbl_name='t1' AND type!='trigger' 0
27 Halt 0 0 0 0
28 Transaction 0 1 0 0 1 usesStmtJournal=1
29 Goto 0 1 0 0
VM-steps: 30
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 Wernher 0 r[3]='Wernher'
4 Integer 10 4 0 0 r[4]=10
5 Integer 100 5 0 0 r[5]=100
6 Once 0 17 0 0
7 Integer 0 10 0 0 r[10]=0
8 Integer 0 12 0 0 r[12]=0
9 Integer 1 14 0 0 r[14]=1
10 String8 0 15 0 $[0] 0 r[15]='$[0]'
11 Function 3 14 13 ->>(2) 0 r[13]=func(r[14..15])
12 Subtract 13 12 11 0 r[11]=r[12]-r[13]
13 Subtract 11 10 8 0 r[8]=r[10]-r[11]
14 Null 0 9 0 0 r[9]=NULL
15 CollSeq 0 0 0 BINARY-8 0
16 Function 3 8 7 nullif(2) 0 r[7]=func(r[8..9])
17 SCopy 7 1 0 0 r[1]=r[7]
18 Cast 1 66 0 0 affinity(r[1])
19 NotNull 1 21 0 0 if r[1]!=NULL goto 21
20 NewRowid 0 1 0 0 r[1]=rowid
21 MustBeInt 1 0 0 0
22 Noop 0 0 0 0 uniqueness check for ROWID
23 NotExists 0 25 1 0 intkey=r[1]
24 Halt 1555 2 0 t1.a 2
25 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
26 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
27 Halt 0 0 0 0
28 Transaction 0 1 1 0 1 usesStmtJournal=0
29 Goto 0 1 0 0
VM-steps: 29
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 von 0 r[3]='von'
4 Integer 20 4 0 0 r[4]=20
5 Integer 200 5 0 0 r[5]=200
6 Integer 2 1 0 0 r[1]=2
7 NotNull 1 9 0 0 if r[1]!=NULL goto 9
8 NewRowid 0 1 0 0 r[1]=rowid
9 MustBeInt 1 0 0 0
10 Noop 0 0 0 0 uniqueness check for ROWID
11 NotExists 0 13 1 0 intkey=r[1]
12 Halt 1555 2 0 t1.a 2
13 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
14 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
15 Halt 0 0 0 0
16 Transaction 0 1 1 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
VM-steps: 16
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 Braun 0 r[3]='Braun'
4 Integer 30 4 0 0 r[4]=30
5 Integer 300 5 0 0 r[5]=300
6 Integer 3 1 0 0 r[1]=3
7 NotNull 1 9 0 0 if r[1]!=NULL goto 9
8 NewRowid 0 1 0 0 r[1]=rowid
9 MustBeInt 1 0 0 0
10 Noop 0 0 0 0 uniqueness check for ROWID
11 NotExists 0 13 1 0 intkey=r[1]
12 Halt 1555 2 0 t1.a 2
13 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
14 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
15 Halt 0 0 0 0
16 Transaction 0 1 1 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
VM-steps: 16
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 34 0 0 Start at 34
1 Noop 0 33 0 0
2 CreateBtree 0 1 2 0 r[1]=root iDb=0 flags=2
3 OpenWrite 0 1 0 5 0 root=1 iDb=0; sqlite_master
4 String8 0 3 0 index 0 r[3]='index'
5 String8 0 4 0 t1bc 0 r[4]='t1bc'
6 String8 0 5 0 t1 0 r[5]='t1'
7 SCopy 1 6 0 0 r[6]=r[1]
8 String8 0 7 0 CREATE INDEX t1bc ON t1(b, c) 0 r[7]='CREATE INDEX t1bc ON t1(b, c)'
9 NewRowid 0 2 0 0 r[2]=rowid
10 MakeRecord 3 5 8 BBBDB 0 r[8]=mkrec(r[3..7])
11 Insert 0 8 2 24 intkey=r[2] data=r[8]
12 SorterOpen 3 0 2 k(3,,,) 0
13 OpenRead 1 2 0 4 0 root=2 iDb=0; t1
14 Rewind 1 21 0 0
15 Column 1 1 10 0 r[10]= cursor 1 column 1
16 Column 1 2 11 0 r[11]= cursor 1 column 2
17 Rowid 1 12 0 0 r[12]=t1.rowid
18 MakeRecord 10 3 9 0 r[9]=mkrec(r[10..12])
19 SorterInsert 3 9 0 0 key=r[9]
20 Next 1 15 0 0
21 OpenWrite 2 1 0 k(3,,,) 17 root=1 iDb=0
22 SorterSort 3 27 0 0
23 SorterData 3 9 2 0 r[9]=data
24 SeekEnd 2 0 0 0
25 IdxInsert 2 9 0 16 key=r[9]
26 SorterNext 3 23 0 0
27 Close 1 0 0 0
28 Close 2 0 0 0
29 Close 3 0 0 0
30 SetCookie 0 1 2 0
31 ParseSchema 0 0 0 name='t1bc' AND type='index' 0
32 Expire 0 1 0 0
33 Halt 0 0 0 0
34 Transaction 0 1 1 0 1 usesStmtJournal=1
35 Goto 0 1 0 0
VM-steps: 56
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 4 0 0 Start at 4
1 Expire 1 1 0 0
2 Expire 0 0 0 0
3 Halt 0 0 0 0
4 Goto 0 1 0 0
VM-steps: 5
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
QUERY PLAN
`--SCAN t2
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 10 0 0 Start at 10
1 OpenRead 1 3 0 k(3,,,) 0 root=3 iDb=0; sqlite_autoindex_t2_1
2 Explain 2 0 214 SCAN t2 0
3 Rewind 1 9 1 0 0
4 Column 1 0 1 0 r[1]= cursor 1 column 0
5 Column 1 1 2 0 r[2]= cursor 1 column 1
6 Column 1 2 3 0 r[3]= cursor 1 column 2
7 ResultRow 1 3 0 0 output=r[1..3]
8 Next 1 4 0 1
9 Halt 0 0 0 0
10 Transaction 0 0 2 0 1 usesStmtJournal=0
11 Goto 0 1 0 0
Braun|30|3
Wernher|10|1
von|20|2
VM-steps: 21
QUERY PLAN
`--SCAN t1 USING COVERING INDEX t1bc
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 10 0 0 Start at 10
1 Noop 1 5 0 0
2 OpenRead 2 3 0 k(3,,,) 0 root=3 iDb=0; t1bc
3 Explain 3 0 215 SCAN t1 USING COVERING INDEX t1bc 0
4 Rewind 2 9 1 0 0
5 Column 2 0 1 0 r[1]= cursor 2 column 0
6 Column 2 1 2 0 r[2]= cursor 2 column 1
7 ResultRow 1 2 0 0 output=r[1..2]
8 Next 2 5 0 1
9 Halt 0 0 0 0
10 Transaction 0 0 2 0 1 usesStmtJournal=0
11 Goto 0 1 0 0
Braun|30
Wernher|10
von|20
VM-steps: 19
Flag