143 lines
5.4 KiB
Markdown
143 lines
5.4 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
|
|
ATTACH DATABASE ':memory:' AS aux1;
|
|
SAVEPOINT sp9324;
|
|
.timer on
|
|
PRAGMA parser_trace = FALSE;
|
|
ATTACH DATABASE '' || (':memory:') AS aux81;
|
|
PRAGMA reverse_unordered_selects = ON;
|
|
PRAGMA max_page_count;
|
|
PRAGMA case_sensitive_like = OFF;
|
|
PRAGMA writable_schema = NO;
|
|
.quit
|
|
DROP TABLE IF EXISTS t1;
|
|
CREATE TABLE t1(a int, b int);
|
|
INSERT INTO t1 VALUES(glob(NULL, NULL),NULL),(CAST(CAST(CAST(log10(if('"', cosh((0 + 5035996954804773676)), 1, 5035996954804773676, 5035996954804773676)) AS CLOB) AS UNSIGNED BIG INT) AS SMALLINT),18),(2,19);
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT x, y FROM (SELECT 98 AS x, 99 AS y UNION SELECT a AS x, sum(b) AS y FROM _m GROUP BY /* PRAGMA secure_delete = TRUE; */ a) AS w WHERE NOT y>=20 ORDER BY +x;
|
|
SELECT x, y FROM (SELECT a AS x, sum(b) AS y FROM t1 GROUP BY a UNION SELECT 98 AS x, 99 AS y) AS w WHERE y>=20 ORDER BY +x;
|
|
DROP VIEW IF EXISTS t1;
|
|
INSERT INTO t1 VALUES (NULL, NULL);
|
|
CREATE TABLE `T1` (
|
|
A VARCHAR(20),
|
|
X VARCHAR(10),
|
|
PRIMARY KEY (A, X),
|
|
UNIQUE (X)
|
|
);
|
|
CREATE TABLE T2 (
|
|
A VARCHAR(20),
|
|
Y VARCHAR(10) UNIQUE,
|
|
PRIMARY KEY (A, Y)
|
|
);
|
|
INSERT INTO T1 VALUES ('a', 'm');
|
|
INSERT INTO T1 VALUES ('b', 'n');
|
|
INSERT INTO T2 VALUES ('b', 'k');
|
|
SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A;
|
|
CREATE TABLE "T" (
|
|
A VARCHAR(20),
|
|
B VARCHAR(30),
|
|
C VARCHAR(30),
|
|
PRIMARY KEY (A, B),
|
|
UNIQUE (A, C)
|
|
);
|
|
INSERT INTO T VALUES ('a', 'p', 'x');
|
|
INSERT INTO T VALUES ('a', 'q', 'y');
|
|
INSERT INTO T VALUES ('b', 'p', 'z');
|
|
INSERT INTO T VALUES ('c', 'r', 'w');
|
|
INSERT INTO T VALUES ('d', 's', 'v');
|
|
SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1;
|
|
INSERT INTO T2 VALUES (NULL, NULL);
|
|
ALTER TABLE T2 ADD COLUMN extra_2116 NUMERIC DEFAULT 0;
|
|
REINDEX;
|
|
UPDATE T2 SET A = 'x' WHERE A IS NOT NULL RETURNING *;
|
|
SELECT * FROM (SELECT Y, COUNT(*) FROM T2 GROUP BY Y) AS sub;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
SELECT LAG(X, 0) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
|
SELECT 0x0ACB29BM205381;
|
|
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
|
SELECT 1 >> -999999999999999999999999999;
|
|
SELECT sqlite_compileoption_get($1);
|
|
SELECT sqlite_version();
|
|
SELECT LEAD(X, 1, NULL) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
|
|
PRAGMA vdbe_listing = YES;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_7197 AS SELECT A FROM T1;
|
|
ALTER TABLE T1 DROP COLUMN A;
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4345 ON T1((X + 1)) WHERE X IS NOT NULL;
|
|
SELECT * FROM T1;
|
|
DETACH DATABASE aux81;
|
|
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE b > 0);
|
|
VACUUM main;
|
|
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2 WHERE A IS NOT NULL);
|
|
ALTER TABLE t1 RENAME TO t1_r6007;
|
|
ALTER TABLE T1 RENAME TO T1_r5111;
|
|
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a = NULL);
|
|
SELECT COUNT(X) OVER (ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
|
|
SELECT NTH_VALUE(b, -1) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
|
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 WHERE b GLOB "*");
|
|
INSERT OR FAIL INTO t1 VALUES (0, 0);
|
|
REINDEX;
|
|
INSERT INTO T1 VALUES ('x', NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
|
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T;
|
|
ANALYZE T2;
|
|
WITH m AS MATERIALIZED (SELECT * FROM T2) SELECT m.A FROM m JOIN m AS m2 ON m.A = m2.A;
|
|
ALTER TABLE t1 RENAME TO t1_r3665;
|
|
DELETE FROM T1 WHERE rowid = 99 RETURNING *;
|
|
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-10) SELECT * FROM cnt;
|
|
INSERT INTO T1 VALUES (NULL, NULL);
|
|
REINDEX;
|
|
ALTER TABLE T2 RENAME TO T2_r3541;
|
|
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT COUNT(*) FROM cnt;
|
|
SELECT * FROM T WHERE A NOT IN (SELECT A FROM T);
|
|
|
|
SELECT COUNT(*) FROM T1;
|
|
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
|
INSERT INTO T SELECT * FROM T;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2111 AS SELECT a FROM t1;
|
|
INSERT INTO T1 SELECT * FROM T1;
|
|
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a) FROM t1;
|
|
ALTER TABLE t1 RENAME TO t1_r4405;
|
|
ROLLBACK TRANSACTION TO SAVEPOINT sp9324;
|
|
RELEASE SAVEPOINT sp9324;
|
|
INSERT INTO T2 DEFAULT VALUES;
|
|
DETACH DATABASE aux1;
|
|
|
|
SELECT COUNT(*) FROM T;
|
|
REINDEX t1;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
Run Time: real 0.000 user 0.000015 sys 0.000000
|
|
Run Time: real 0.000 user 0.000033 sys 0.000000
|
|
Run Time: real 0.000 user 0.000003 sys 0.000000
|
|
1073741823
|
|
Run Time: real 0.000 user 0.000008 sys 0.000000
|
|
Run Time: real 0.000 user 0.000005 sys 0.000000
|
|
Run Time: real 0.000 user 0.000003 sys 0.000000
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
Run Time: real 0.000003 user 0.000009 sys 0.000000
|
|
Run Time: real 0.000024 user 0.000024 sys 0.000000
|
|
Run Time: real 0.000002 user 0.000003 sys 0.000000
|
|
4294967294
|
|
Run Time: real 0.000006 user 0.000007 sys 0.000000
|
|
Run Time: real 0.000004 user 0.000004 sys 0.000000
|
|
Run Time: real 0.000002 user 0.000003 sys 0.000000
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
|
|
```
|
|
|