104 lines
2.8 KiB
Markdown
104 lines
2.8 KiB
Markdown
## Summary
|
|
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
|
|
|
## Minimized query
|
|
|
|
```sql
|
|
.shell pwd
|
|
CREATE TABLE T (
|
|
a TEXT,
|
|
b INTEGER,
|
|
c REAL
|
|
);
|
|
INSERT INTO T VALUES ('a',ceiling(x'c5cb906e1c8cc13d197d23f8b3cc1209'),2.0), ('a',2,-3.0), ('b',1,4.5);
|
|
SELECT a,b,c,
|
|
SUM(c) OVER (
|
|
PARTITION BY a
|
|
ORDER BY b
|
|
) AS d
|
|
FROM T;
|
|
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
|
INSERT INTO t1 VALUES (like('_1%', 1, '_'), '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
|
|
|
|
SELECT * FROM t2;
|
|
SELECT b, c FROM t1 ORDER BY b, c;
|
|
.quit
|
|
BEGIN DEFERRED;
|
|
CREATE TABLE T (
|
|
a TEXT,
|
|
b REAL
|
|
);
|
|
INSERT INTO T VALUES ('a',100.0), ('b',-200.5), ('c',9e999);
|
|
SELECT a,b,
|
|
LEAD(b,1) OVER (ORDER BY b DESC) AS c,
|
|
NTILE(2) OVER (ORDER BY b DESC) AS d FROM T;
|
|
PRAGMA cache_spill = NO;
|
|
PRAGMA vdbe_listing = inf;
|
|
PRAGMA empty_result_callbacks = 0;
|
|
.timeout
|
|
CREATE TABLE p1(a PRIMARY KEY, b UNIQUE);
|
|
CREATE TABLE c1(x, y, z REFERENCES p1(c));
|
|
CREATE TABLE c2(x, y, z, w REFERENCES p1(b));
|
|
ALTER TABLE c1 DROP COLUMN z;
|
|
ALTER TABLE c2 DROP COLUMN z;
|
|
SELECT sql FROM sqlite_schema WHERE name IN ('c1', 'c2');
|
|
COMMIT TRANSACTION;
|
|
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<31) SELECT x FROM cnt WHERE x > 15;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_c1_2917 AS SELECT z FROM c1;
|
|
SELECT * FROM c2 AS a FULL OUTER JOIN c1 AS b ON a.rowid = b.rowid;
|
|
SELECT * FROM p1;
|
|
UPDATE c2 SET z = NULL WHERE rowid = 1;
|
|
CREATE INDEX IF NOT EXISTS idx_c2_3327 ON c2(lower(x)) WHERE x > 0;
|
|
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
|
|
DROP TABLE t0;
|
|
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM c2;
|
|
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM c1;
|
|
REINDEX p1;
|
|
ALTER TABLE c2 RENAME COLUMN w TO w_r831;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
/fuzzer
|
|
a||2.0|2.0
|
|
a|2|-3.0|-1.0
|
|
b|1|4.5|4.5
|
|
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
|
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
|
Braun|30|3
|
|
Wernher|10|1
|
|
von|20|2
|
|
Braun|30
|
|
Wernher|10
|
|
von|20
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
/fuzzer
|
|
a||2.0|2.0
|
|
a|2|-3.0|-1.0
|
|
b|1|4.5|4.5
|
|
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
|
Braun|30|3
|
|
Wernher|10|1
|
|
von|20|2
|
|
Braun|30
|
|
Wernher|10
|
|
von|20
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
|
|
```
|
|
|