114 lines
3.1 KiB
Markdown
114 lines
3.1 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
|
|
.timer 192319231923
|
|
.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 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;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
Run Time: real 0.000 user 0.000000 sys 0.000021
|
|
Run Time: real 0.000 user 0.000000 sys 0.000115
|
|
Run Time: real 0.000 user 0.000000 sys 0.000062
|
|
3|c|Inf
|
|
Run Time: real 0.000 user 0.000000 sys 0.000039
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
Run Time: real 0.000002 user 0.000013 sys 0.000000
|
|
Run Time: real 0.000046 user 0.000046 sys 0.000000
|
|
Run Time: real 0.000037 user 0.000037 sys 0.000000
|
|
3|c|Inf
|
|
Run Time: real 0.000018 user 0.000018 sys 0.000000
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
|
|
```
|
|
|