## Summary **No review yet** ## Minimized query ```sql PRAGMA secure_delete = ON; SAVEPOINT sp6770; BEGIN TRANSACTION; PRAGMA reverse_unordered_selects = NO; PRAGMA synchronous = '0'; CREATE TABLE T ( A VARCHAR(-(-(CAST(10 AS INT8)))) PRIMARY KEY, B VARCHAR(15), C BIGINT NOT NULL, UNIQUE (B, C) ); INSERT INTO T VALUES ('a', 'p', 3000); INSERT INTO T VALUES ('b', 'q', 9223372036854775807); INSERT INTO T VALUES ('c', 'r', 1700); INSERT INTO T VALUES ('e', 'q', -9223372036854775808); INSERT INTO T VALUES ('f', 'r', 0); SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0; ATTACH DATABASE ':memory:' AS aux7; -- jsonb_replace({v}, '$.key', {v}) -- ifnull({v}, NULL) PRAGMA secure_delete = OFF; PRAGMA legacy_alter_table; ATTACH DATABASE ':memory:' AS aux49; BEGIN DEFERRED TRANSACTION; SAVEPOINT sp9700; PRAGMA secure_delete = YES; PRAGMA case_sensitive_like = FALSE; .explain auto CREATE TABLE main.`T` ( a REAL, b TEXT, c REAL ); INSERT INTO T VALUES ('a','b',(abs(datetime(round('123.45', CAST('''''' AS BOOLEAN)), '+1 day')) + unixepoch((strftime('%s', strftime('%s', abs(-unlikely(NULL)))) + 2147483647)))), ('a','c',5.0), ('b','d',-8.25); SELECT a,b,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; .exit time(9999) .timeout BEGIN IMMEDIATE TRANSACTION; .load /home/test/sqlite3-src/build/rot13.so WITH _m AS MATERIALIZED (select * FROM t2) SELECT rot13('SMI 31/12 CHF 100000 PUTS'); CREATE TABLE t1(a INTEGER PRIMARY KEY,R); CREATE TABLE _m(x UNIQUE); CREATE VIEW v1a(z,y) AS SELECT x IS NULL, x FROM t2; SELECT a,(+a)b,(+a)b,(+a)b,NOT EXISTS(SELECT null FROM t2),CASE z WHEN -9223372036854775807 THEN 992 WHEN 391 THEN 203 WHEN 10 THEN '?k 0; DROP TABLE IF EXISTS _m; ALTER TABLE _m RENAME COLUMN x TO x_r1153; SELECT * FROM _m AS a FULL JOIN _m AS b ON a.rowid = b.rowid; SELECT COUNT(*) FILTER (WHERE x IS NOT NULL), SUM(rowid) FILTER (WHERE x > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(x) FILTER (WHERE x > 0 OR x < 100), COUNT(*) FILTER (WHERE typeof(x) = "text") FROM _m; WITH cte AS (SELECT CASE WHEN x > 0 THEN "pos" ELSE "neg" END AS sign FROM _m) SELECT * FROM cte; ANALYZE; CREATE TABLE T ( a TEXT, b TEXT, c REAL ); INSERT INTO T VALUES ('a','b',1.0), ('a','c',-1.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; INSERT INTO _m DEFAULT VALUES; ALTER TABLE _m RENAME COLUMN x TO x_r4888; CREATE TABLE T1 ( A VARCHAR(20), X VARCHAR(10), PRIMARY KEY (A, X), UNIQUE (X) ); SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); 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; SELECT PERCENT_RANK() OVER (ORDER BY A RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2; SELECT COUNT(a) FROM t1; UPDATE T2 SET A = '' WHERE A BETWEEN 0 AND 100 RETURNING *; WITH cte AS (SELECT * FROM T1 WHERE A IS NOT NULL) SELECT * FROM cte; ALTER TABLE T RENAME TO T_r8075; CREATE TABLE T ( A VARCHAR(20), B VARCHAR(10), PRIMARY KEY (A, B) ); INSERT INTO T VALUES ('a', 'p'); INSERT INTO T VALUES ('a', 'q'); INSERT INTO T VALUES ('b', 'q'); INSERT INTO T VALUES ('c', 'r'); INSERT INTO T VALUES ('b', 'r'); INSERT INTO T VALUES ('b', 't'); SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC; SELECT GROUP_CONCAT(b, '.') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T; INSERT INTO t1 VALUES (NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, R = excluded.R; WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<32) SELECT COUNT(*) FROM cnt; VACUUM main; INSERT INTO t1 VALUES ('x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, R = excluded.R; ROLLBACK TO sp9700; RELEASE sp9700; ROLLBACK; CREATE INDEX IF NOT EXISTS idx_T2_1270 ON T2(A) WHERE A IS NOT NULL; SELECT * FROM _m WHERE x NOT IN (SELECT x FROM _m WHERE x IS NULL); SELECT * FROM T2; DROP VIEW IF EXISTS _m; WITH a AS (SELECT A FROM T2), b AS (SELECT A FROM T2) SELECT * FROM a JOIN b ON a.A = b.A; DETACH DATABASE aux49; CREATE TABLE T ( A VARCHAR(20), B VARCHAR(10), PRIMARY KEY (A, B) ); INSERT INTO T VALUES ('a', 'p'); INSERT INTO T VALUES ('a', 'q'); INSERT INTO T VALUES ('b', 'q'); INSERT INTO T VALUES ('c', 'r'); INSERT INTO T VALUES ('b', 'r'); INSERT INTO T VALUES ('b', 't'); SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC; SELECT * FROM (SELECT * FROM T) AS t1 JOIN (SELECT * FROM T) AS t2 ON t1.c = t2.c; INSERT INTO _m VALUES ('x') ON CONFLICT(x) DO UPDATE SET x = excluded.x; ALTER TABLE T2 ADD COLUMN extra_239 NCHAR(55) DEFAULT NULL; SELECT MAX(x) FROM _m; DROP INDEX IF EXISTS _m; SELECT * FROM _m; INSERT OR REPLACE INTO t1 VALUES ('x', NULL); INSERT OR ROLLBACK INTO T2 VALUES ('x', NULL); CREATE TRIGGER IF NOT EXISTS trg__m_1421 AFTER UPDATE OF x ON _m BEGIN SELECT RAISE(IGNORE); END; CREATE TABLE T ( a INTEGER, b REAL, c REAL ); INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0); SELECT * FROM T WHERE b < 2.0 ORDER BY b; CREATE TABLE T1 ( A VARCHAR(10) PRIMARY KEY, B VARCHAR(15) UNIQUE, C BIGINT ); CREATE TABLE T2 ( X VARCHAR(20) PRIMARY KEY, A VARCHAR(10), FOREIGN KEY (A) REFERENCES T1(A) ); INSERT INTO T1 VALUES ('a', 'p', 9999999999999); INSERT INTO T1 VALUES ('b', 'q', -9999999999999); INSERT INTO T2 VALUES ('m', 'a'); INSERT INTO T2 VALUES ('n', 'b'); SELECT T2.X, T1.C FROM T2 INNER JOIN T1 ON T2.A = T1.A WHERE T1.C > -1000000000000; CREATE TEMPORARY VIEW IF NOT EXISTS v_T_8465 AS SELECT b FROM T; SELECT COUNT(*) FROM t1; SELECT * FROM T1 WHERE B IN (SELECT B FROM T1 LIMIT 1); ALTER TABLE T1 RENAME COLUMN C TO C_r8042; ALTER TABLE t1 DROP COLUMN a; SELECT COUNT(*) FILTER (WHERE C IS NOT NULL), SUM(rowid) FILTER (WHERE C > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(C) FILTER (WHERE C > 0 AND C < 100), COUNT(*) FILTER (WHERE typeof(C) = "text") FROM T1; ALTER TABLE T1 ADD COLUMN extra_2323 BOOLEAN; SELECT R FROM t1 EXCEPT SELECT R FROM (SELECT * FROM t1) AS sub; ALTER TABLE _m ADD COLUMN extra_2307 DOUBLE PRECISION COLLATE NOCASE; INSERT INTO T VALUES (1, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c; SELECT COUNT(a) FILTER (WHERE a IS NOT NULL) OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1; REINDEX T; SELECT * FROM T WHERE NOT EXISTS (SELECT 1 FROM T WHERE 1 = 0); DETACH DATABASE aux7; SELECT * FROM _m AS a FULL OUTER JOIN T1 AS b ON a.rowid = b.rowid; UPDATE T1 SET C = C + 1; SELECT * FROM T1 AS a INNER JOIN T2 AS b ON a.rowid = b.rowid; REINDEX; DELETE FROM _m WHERE rowid = 80; SELECT MIN(b) FILTER (WHERE b IS NOT NULL) OVER (PARTITION BY b ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T; ALTER TABLE t1 ADD COLUMN extra_5205 CLOB COLLATE NOCASE; PRAGMA count_changes = TRUE; WITH cte1 AS (SELECT * FROM T2), cte2 AS (SELECT * FROM T2) SELECT * FROM cte1 LEFT JOIN cte2 ON cte1.X = cte2.X; ALTER TABLE _m RENAME COLUMN x TO x_r168; PRAGMA reverse_unordered_selects = ON; SELECT DENSE_RANK() OVER (PARTITION BY A ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T2; INSERT INTO T VALUES (NULL, NULL, NULL); SELECT COUNT(x) FILTER (WHERE NULL) OVER (ORDER BY x RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM _m; CREATE TEMP VIEW IF NOT EXISTS v_T2_1592 AS SELECT A FROM T2; ALTER TABLE _m DROP COLUMN x; PRAGMA legacy_file_format; ALTER TABLE T1 ADD COLUMN extra_7201 TINYINT DEFAULT CURRENT_TIMESTAMP; SELECT AVG(c) FROM T; SELECT * FROM T2; INSERT INTO _m VALUES ('x') ON CONFLICT(x) DO UPDATE SET x = excluded.x; ALTER TABLE _m RENAME COLUMN x TO x_r2324; ANALYZE _m; ALTER TABLE _m RENAME COLUMN x TO x_r556; CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_7163 ON T1((A + 1)) WHERE A > 0; INSERT INTO T1 VALUES (NULL, NULL, NULL); SELECT RANK() OVER (ORDER BY A GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T1; COMMIT TRANSACTION; WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<54) SELECT * FROM multi; ALTER TABLE t1 RENAME COLUMN a TO a_r8820; ROLLBACK TO sp6770; RELEASE sp6770; CREATE TRIGGER IF NOT EXISTS trg_t1_2301 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END; SELECT COUNT(*) FROM t1; ``` ## Actual output ```sql Usage: /home/test/sqlite3-src/build/sqlite3 [OPTIONS] FILENAME [SQL] FILENAME is the name of an SQLite database. A new database is created if the file does not previously exist. OPTIONS include: -append append the database to the end of the file -ascii set output mode to 'ascii' -bail stop after hitting an error -batch force batch I/O -box set output mode to 'box' -column set output mode to 'column' -cmd COMMAND run "COMMAND" before reading stdin -csv set output mode to 'csv' -deserialize open the database using sqlite3_deserialize() -echo print commands before execution -init FILENAME read/process named file -[no]header turn headers on or off -help show this message -html set output mode to HTML -interactive force interactive I/O -json set output mode to 'json' -line set output mode to 'line' -list set output mode to 'list' -lookaside SIZE N use N entries of SZ bytes for lookaside memory -markdown set output mode to 'markdown' -maxsize N maximum size for a --deserialize database -memtrace trace all memory allocations and deallocations -mmap N default mmap size set to N -newline SEP set output row separator. Default: '\n' -nofollow refuse to open symbolic links to database files -nonce STRING set the safe-mode escape nonce -nullvalue TEXT set text string for NULL values. Default '' -pagecache SIZE N use N slots of SZ bytes each for page cache memory -quote set output mode to 'quote' -readonly open the database read-only -safe enable safe-mode -separator SEP set output column separator. Default: '|' -stats print memory stats before each finalize -table set output mode to 'table' -tabs set output mode to 'tabs' -version show SQLite version -vfs NAME use NAME as the default VFS ``` ## Expectation ```sql ``` ## Flag ``` -help ```