Files
ast-project/part1/results/2/bug_15596316-39fa-477b-ae94-db6e65439923_logic.md
2026-06-24 13:47:14 +02:00

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