Files
ast-project/part1/results/3/bug_cbaeff0c-6a3a-47e7-9414-0a8ffd3f70e5_logic.md
T
2026-06-24 13:47:14 +02:00

138 lines
4.3 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
.dbconfig fk 9999
.separator >_<
.bail off
.show
SAVEPOINT sp9092;
-- PRAGMA short_column_names = YES;
.exit
.import employee.db main
ATTACH DATABASE (':memory:' || '') AS aux30;
ATTACH DATABASE ':memory:' AS aux15;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (x'c95d5259cda7cdd55eabeb6e','' || ('a')),(hex(NULL),'b');
INSERT INTO T2 VALUES (-(-(log(jsonb(-9223372036854775808)))),'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE NOT NOT (NOT NOT (T2.a=T1.a
) AS c
FROM T1)) ;
WITH RECURSIVE cte AS (SELECT b FROM T1 UNION ALL SELECT b FROM cte LIMIT 1) SELECT * FROM cte;
WITH cte AS (SELECT a, ROW_NUMBER() OVER (ORDER BY a) AS rn FROM T1) SELECT * FROM cte WHERE /**/ rn <= 5;
SELECT GROUP_CONCAT(b, '|') FROM T1;
CREATE TABLE "T" (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',0.0);
SELECT * FROM T WHERE c < 2.0 ORDER BY c;
CREATE TRIGGER IF NOT EXISTS trg_T2_4542 BEFORE DELETE ON T2 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); /**/ END;
DROP INDEX IF EXISTS T;
INSERT INTO T2 DEFAULT VALUES;
WITH cte AS (SELECT a, SUM(a) OVER (ORDER BY a) AS running FROM T1) SELECT * FROM cte;
ALTER TABLE T2 RENAME COLUMN b TO b_r3915;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE b = NULL);
PRAGMA ignore_check_constraints = OFF;
WITH cte AS (SELECT CASE WHEN b > 0 THEN "pos" ELSE "neg" END AS sign FROM T1) SELECT * FROM cte;
DETACH DATABASE aux15;
DETACH DATABASE aux30;
VACUUM;
VACUUM;
ALTER TABLE T ADD COLUMN extra_6089 CHARACTER(20) DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T VALUES (NULL, 1, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
RELEASE sp9092;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
CREATE TRIGGER IF NOT EXISTS trg_T_886 AFTER UPDATE OF c ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
SELECT COUNT(*) FROM T;
SELECT MIN(b) FROM T1;
SELECT COUNT(b) FILTER (WHERE b IS NOT NULL) OVER (ORDER BY b RANGE BETWEEN CURRENT ROW OR UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
SELECT COUNT(*) FROM T;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T);
INSERT INTO T2 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
WITH cte AS (SELECT a FROM T1) SELECT * FROM cte WHERE a IS NOT NULL;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_4584 AS SELECT a FROM T1;
SELECT AVG(a) FROM T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
REINDEX T;
SELECT NTH_VALUE(a, a) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
ALTER TABLE T1 RENAME COLUMN b TO b_r3416;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T2_8492 ON T2(lower(b)) WHERE b IS NOT NULL;
DELETE FROM T1 WHERE 1;
DELETE FROM T WHERE 1;
WITH cte AS (SELECT NULL AS x) SELECT * FROM cte;
CREATE INDEX IF NOT EXISTS idx_T_2240 ON T(lower(b)) WHERE b IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_T2_5034 AFTER UPDATE ON T2 BEGIN INSERT INTO T2(a) VALUES (NULL); END;
SELECT RANK() OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
CREATE TEMP VIEW IF NOT EXISTS v_T2_1968 AS SELECT b FROM T2;
CREATE TRIGGER IF NOT EXISTS trg_T2_1748 AFTER DELETE ON T2 BEGIN SELECT RAISE(FAIL, 'no'); END;
REINDEX T;
UPDATE T2 SET a = json_object('k', a) WHERE a BETWEEN 0 AND 100;
SELECT * FROM T2;
ALTER TABLE T1 DROP COLUMN a;
```
## Actual output
```sql
SQLite version 3.39.0 2022-05-10 23:28:12
Enter ".help" for usage hints.
sqlite> sqlite> sqlite> sqlite> echo: off
eqp: off
explain: auto
headers: off
mode: list
nullvalue: ""
output: stdout
colseparator: ">_<"
rowseparator: "\n"
stats: off
width:
filename: :memory:
sqlite> sqlite> sqlite> sqlite>
```
## Expectation
```sql
SQLite version 3.51.1 2025-11-28 17:28:25
Enter ".help" for usage hints.
sqlite> sqlite> sqlite> sqlite> echo: off
eqp: off
explain: auto
headers: off
mode: list
nullvalue: ""
output: stdout
colseparator: ">_<"
rowseparator: "\n"
stats: off
width:
filename: :memory:
sqlite> sqlite> sqlite> sqlite>
```
## Flag
```
-interactive
```