Files
ast-project/part1/results/3/bug_aa2281b2-97d4-4440-9dba-d1a6fe826da3_logic.md
T
2026-06-24 13:47:14 +02:00

193 lines
8.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 aux68;
ATTACH DATABASE (':memory:' || '') AS aux79;
ATTACH DATABASE ':memory:' AS aux40;
.recover
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INseRt INTO T VALUES ('a','b',instr(NULL, tan(CAST('%' AS SMALLINT)))), ('a','c',-(CAST(unhex(trim(NULL, 'x'), ' ') AS CHARACTER(CAST(20 AS NATIVE CHARACTER(70)NVARCHAR(100)))) + 0.0)), ('b','d',0.0);
SELECT
COALESCE(a,'e') AS d,
COALESCE(b,'f') AS e,
SUM(c) AS f
FROM T
GROUP BY a,b;
.echo on
.stats stmt
PRAGMA optimize;
PRAGMA journal_mode = 'MEMORY';
BEGIN EXCLUSIVE;
SAVEPOINT sp8818;
SAVEPOINT sp9957;
.exit -(pi() + acos(('true' + 0).7976931348623157e+308))
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 700);
INSERT INTO T VALUES ('c', 'r', 0);
INSERT INTO T VALUES ('d', 's', 2147483647);
INSERT INTO T VALUES ('e', 't', -1);
INSERT INTO T VALUES ('f', 'u', 1);
SELECT * FROM T WHERE NOT NOT (NOT NOT (NOT C BETWEEN -1000 AND 1000)) ORDER BY C ASC;
DROP TABLE t0;
PRAGMA temp_store = '2';
PRAGMA fullsync = FALSE;
PRAGMA read_uncommitted = round(9223372036854775807);
.cd bugs
CREATE TABLE "customer" (id UNSIGNED BIG INT PRIMARY KEY);
CREATE TABLE apr (id INT PRIMARY KEY, apr REAL);
CREATE VIEW v1 AS SELECT c.id, i.apr FROM customer c LEFT JOIN apr i ON i.id=c.id;
CREATE VIEW v1rj AS SELECT c.id, i.apr FROM apr i RIGHT JOIN customer c ON i.id=c.id;
CREATE VIEW v2 AS SELECT c.id, v1.apr FROM customer c LEFT JOIN v1 ON v1.id=c.id;
CREATE VIEW v2rj AS SELECT c.id, v1.apr FROM v1 RIGHT JOIN customer c ON v1.id=c.id;
CREATE VIEW v2rjrj AS SELECT c.id, v1rj.apr FROM v1rj RIGHT JOIN customer c ON v1rj.id=c.id;
INSERT INTO customer (id) VALUES (1);
INSERT INTO apr (id, apr) VALUES (1, 12);
INSERT INTO customer (id) VALUES (2);
INSERT INTO apr (id, apr) VALUES (2, 12.01);
PRAGMA automatic_index=ON;
SELECT id, (apr / 100), typeof(apr) apr_type FROM v1;
SELECT * FROM customer WHERE id IN (SELECT id FROM customer LIMIT 0);
SELECT * FROM (SELECT * FROM customer) AS sub;
SELECT * FROM apr WHERE EXISTS (SELECT 1 FROM apr WHERE EXISTS (SELECT 1 FROM apr));
CREATE TRIGGER IF NOT EXISTS trg_customer_998 AFTER DELETE ON customer BEGIN INSERT INTO customer(id) VALUES (NULL); END;
SELECT * FROM customer WHERE id <> ANY (SELECT id FROM customer);
SELECT * FROM apr WHERE EXISTS (SELECT 1 FROM apr t2 WHERE t2.id = apr.id);
INSERT OR REPLACE INTO customer VALUES (NULL);
SELECT COUNT(*) FILTER (WHERE apr IS NOT NULL), SUM(rowid) FILTER (WHERE apr > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(apr) FILTER (WHERE apr > 0 AND apr < 100), COUNT(*) FILTER (WHERE typeof(apr) = "text") FROM apr;
UPDATE customer SET id = 52 WHERE rowid = 1;
INSERT INTO apr DEFAULT VALUES;
UPDATE apr SET id = CURRENT_TIMESTAMP;
ROLLBACK TRANSACTION TO SAVEPOINT sp9957;
RELEASE SAVEPOINT sp9957;
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 cte AS (SELECT * FROM customer) SELECT * FROM cte;
INSERT INTO customer VALUES ('x') ON CONFLICT(id) DO UPDATE SET id = excluded.id;
SELECT * FROM customer;
SELECT STRING_AGG(id) FROM customer;
ROLLBACK TRANSACTION TO SAVEPOINT sp8818;
RELEASE SAVEPOINT sp8818;
SELECT COUNT(*) FILTER (WHERE apr IS NOT NULL), SUM(rowid) FILTER (WHERE apr > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(apr) FILTER (WHERE apr > 0 AND apr < 100), COUNT(*) FILTER (WHERE typeof(apr) = "text") FROM apr;
ANALYZE customer;
DELETE FROM customer WHERE rowid = 55 RETURNING *;
COMMIT;
INSERT INTO apr VALUES (NULL, NULL);
REINDEX;
INSERT INTO apr VALUES (NULL, NULL);
ANALYZE;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 700);
INSERT INTO T VALUES ('c', 'r', 0);
INSERT INTO T VALUES ('d', 's', 2147483647);
INSERT INTO T VALUES ('e', 't', -1);
INSERT INTO T VALUES ('f', 'u', 1);
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
INSERT INTO apr VALUES (1, 'x') ON CONFLICT(id) DO UPDATE SET id = excluded.id, apr = excluded.apr;
INSERT INTO T DEFAULT VALUES;
WITH a AS (SELECT id FROM customer), b AS (SELECT COUNT(*) AS cnt FROM a) SELECT * FROM b;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_651 ON T(A COLLATE NOCASE) WHERE A > 0;
ANALYZE;
CREATE TEMPORARY VIEW IF NOT EXISTS v_customer_2839 AS SELECT id FROM customer;
SELECT * FROM T CROSS JOIN customer;
SELECT * FROM apr;
INSERT OR FAIL INTO customer VALUES (NULL);
SELECT * FROM customer AS a FULL OUTER JOIN customer AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM apr;
SELECT * FROM customer;
ALTER TABLE apr ADD COLUMN extra_3754 ANY NOT NULL DEFAULT 0;
SELECT * FROM apr AS a JOIN customer AS b ON a.rowid = b.rowid;
ALTER TABLE T RENAME TO T_r1287;
CREATE INDEX IF NOT EXISTS idx_T_8324 ON T(B COLLATE NOCASE) WHERE B > 0;
ANALYZE customer;
INSERT INTO T VALUES (NULL, NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_customer_3825 BEFORE INSERT ON customer BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO customer VALUES (1) ON CONFLICT(id) DO UPDATE SET id = excluded.id;
SELECT * FROM customer AS a INNER JOIN T AS b ON a.rowid = b.rowid;
SELECT TOTAL(id) FROM customer;
SELECT * FROM T AS a LEFT OUTER JOIN apr AS b ON a.rowid = b.rowid;
ALTER TABLE T ADD COLUMN extra_1657 UNSIGNED BIG INT COLLATE RTRIM;
DROP TRIGGER IF EXISTS apr;
INSERT INTO customer DEFAULT VALUES;
SELECT COUNT(*) FILTER (WHERE apr IS NOT NULL), SUM(rowid) FILTER (WHERE apr > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(apr) FILTER (WHERE apr > 0 AND apr < 100), COUNT(*) FILTER (WHERE typeof(apr) = "text") FROM apr;
WITH RECURSIVE r AS (SELECT * FROM T LIMIT 1 UNION ALL SELECT t.* FROM T t JOIN r ON t.A = r.A LIMIT 10) SELECT * FROM r;
SELECT * FROM apr AS a FULL JOIN apr AS b ON a.rowid = b.rowid;
UPDATE apr SET id = id + 1 WHERE rowid = 1;
INSERT INTO apr VALUES (NULL, 'x') ON CONFLICT(id) DO UPDATE SET id = excluded.id, apr = excluded.apr;
DETACH DATABASE aux40;
SELECT NTILE(-1) OVER (PARTITION BY apr ORDER BY apr ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM apr;
ALTER TABLE T RENAME COLUMN C TO C_r4051;
VACUUM;
REINDEX apr;
INSERT OR ROLLBACK INTO apr VALUES ('', -2);
SELECT COUNT(*) FROM T;
REINDEX;
SELECT id, (SELECT MIN(id) FROM customer) AS min_val FROM customer;
PRAGMA vdbe_addoptrace = 0;
DETACH DATABASE aux79;
SELECT COUNT(*) FILTER (WHERE apr IS NOT NULL), SUM(rowid) FILTER (WHERE apr > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(apr) FILTER (WHERE apr > 0 AND apr < 100), COUNT(*) FILTER (WHERE typeof(apr) = "text") FROM apr;
CREATE TRIGGER IF NOT EXISTS trg_customer_4946 BEFORE INSERT ON customer FOR EACH ROW BEGIN INSERT INTO customer(id) VALUES (NULL); END;
ANALYZE;
PRAGMA legacy_alter_table = 0;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
VACUUM main;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_7883 ON T((A + 1)) WHERE A > 0;
CREATE VIRTUAL TABLE T
USING fts5(a,b);
INSERT INTO T VALUES ('a','b c'), ('d','e f');
SELECT a,b FROM T WHERE T MATCH 'b';
ALTER TABLE customer DROP COLUMN id;
UPDATE T SET B = 34 WHERE B IS NOT NULL RETURNING *;
DETACH DATABASE aux68;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<66) SELECT x FROM cnt WHERE x > 33;
```
## Actual output
```sql
3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
```
## Expectation
```sql
3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88 (64-bit)
```
## Flag
```
-version
```