122 lines
3.4 KiB
Markdown
122 lines
3.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
|
|
BEGIN DEFERRED TRANSACTION;
|
|
.timer 1
|
|
.indexes
|
|
SAVEPOINT sp7020;
|
|
CREATE TABLE T (
|
|
a INTEGER,
|
|
b TEXT,
|
|
c REAL
|
|
);
|
|
INSERT INTO T VALUES (atanh(x'759d39'),'' || ('a'),like('1.25?*', CAST(pow(1.25, 1.25) AS VARCHAR(255)))), (2,'b',-3.5), (3,'c',9e999);
|
|
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE NOT c > 0;
|
|
.quit
|
|
CREATE TABLE T1 (
|
|
A VARCHAR(json_quote('string')),
|
|
X VARCHAR((10 + 0.0)),
|
|
PRIMARY KEY (A, X),
|
|
UNIQUE (X)
|
|
);
|
|
-- .headers
|
|
|
|
CREATE TABLE T2 (
|
|
A VARCHAR(20),
|
|
Y VARCHAR(10) UNIQUE,
|
|
PRIMARY KEY (A, Y)
|
|
);
|
|
INSERT INTO T1 VALUES ('a', 'm');
|
|
CREATE TABLE T (
|
|
A VARCHAR(10) PRIMARY KEY,
|
|
B VARCHAR(15) /* rtrim({v}, 'xyz') */ NOT NULL,
|
|
C DOUBLE PRECISION
|
|
);
|
|
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
|
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
|
INSERT INTO T VALUES ('c', 'r', 0.0);
|
|
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
|
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
|
INSERT INTO T VALUES ('f', 't', 750.25);
|
|
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
|
INSERT INTO T1 VALUES ('b', 'n');
|
|
INSERT INTO T2 VALUES ('b', 'k');
|
|
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT A FROM T1 UNION ALL SELECT A FROM _m ORDER BY A;
|
|
INSERT INTO T2 SELECT * FROM T2;
|
|
INSERT INTO T1 DEFAULT VALUES;
|
|
ROLLBACK TRANSACTION TO SAVEPOINT sp7020;
|
|
RELEASE SAVEPOINT sp7020;
|
|
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 T2;
|
|
ANALYZE T2;
|
|
VACUUM;
|
|
INSERT INTO T1 DEFAULT VALUES;
|
|
ALTER TABLE T2 RENAME TO T2_r1456;
|
|
SELECT AVG(A) FROM T;
|
|
SELECT MAX(B) FROM T;
|
|
SELECT * FROM (SELECT * FROM T) AS sub;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
|
|
SELECT COUNT(*) FROM T2;
|
|
INSERT OR IGNORE INTO T VALUES (0, '', 0);
|
|
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
|
|
DROP TABLE t0;
|
|
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
|
CREATE TABLE T1 (
|
|
A VARCHAR(20),
|
|
X VARCHAR(10),
|
|
PRIMARY KEY (A, X)
|
|
);
|
|
CREATE TABLE T2 (
|
|
A VARCHAR(20),
|
|
Y VARCHAR(10),
|
|
PRIMARY KEY (A, Y)
|
|
);
|
|
INSERT INTO T1 VALUES ('a', 'm');
|
|
INSERT INTO T1 VALUES ('b', 'n');
|
|
INSERT INTO T1 VALUES ('c', 'o');
|
|
INSERT INTO T2 VALUES ('b', 'k');
|
|
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
|
|
ALTER TABLE T RENAME TO T_r9219;
|
|
ALTER TABLE T DROP COLUMN C;
|
|
SELECT GROUP_CONCAT(A, '|') FROM T2;
|
|
SELECT COUNT(B) OVER (ORDER BY B RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
|
|
SELECT * FROM T1 NATURAL JOIN T2;
|
|
UPDATE T SET C = NULL WHERE rowid = 1;
|
|
INSERT INTO T2 VALUES (NULL, NULL);
|
|
COMMIT;
|
|
SELECT MIN(Y) FROM T2;
|
|
INSERT INTO T1 VALUES ('x', NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
Run Time: real 0.000 user 0.000014 sys 0.000000
|
|
Run Time: real 0.000 user 0.000081 sys 0.000000
|
|
Run Time: real 0.000 user 0.000040 sys 0.000000
|
|
|a|0.0
|
|
2|b|-3.5
|
|
Run Time: real 0.000 user 0.000027 sys 0.000000
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
Run Time: real 0.000003 user 0.000000 sys 0.000033
|
|
Run Time: real 0.000115 user 0.000000 sys 0.000116
|
|
Run Time: real 0.000087 user 0.000000 sys 0.000088
|
|
|a|0.0
|
|
2|b|-3.5
|
|
Run Time: real 0.000032 user 0.000000 sys 0.000032
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
|
|
```
|
|
|