# LogicTest: fakedist fakedist-opt

# Regression tests for weird explain analyze cases.

statement ok
EXPLAIN ANALYZE (DISTSQL) CREATE TABLE a (a INT PRIMARY KEY)

statement ok
EXPLAIN ANALYZE (DISTSQL) CREATE INDEX ON a(a)

statement ok
EXPLAIN ANALYZE (DISTSQL) INSERT INTO a VALUES (1)

# Make sure failures are okay.
statement error duplicate
EXPLAIN ANALYZE (DISTSQL) INSERT INTO a VALUES (1)

statement error value type string doesn't match type
EXPLAIN ANALYZE (DISTSQL) INSERT INTO a VALUES ('a'::string)

statement ok
EXPLAIN ANALYZE (DISTSQL) INSERT INTO a SELECT a+1 FROM a

statement ok
EXPLAIN ANALYZE (DISTSQL) UPDATE a SET a = a*3

statement ok
EXPLAIN ANALYZE (DISTSQL) UPDATE a SET a = a*3 RETURNING a

statement ok
EXPLAIN ANALYZE (DISTSQL) UPSERT INTO a VALUES(10)

statement error EXPLAIN ANALYZE does not support RETURNING NOTHING statements
EXPLAIN ANALYZE (DISTSQL) UPSERT INTO a VALUES(11) RETURNING NOTHING

statement ok
EXPLAIN ANALYZE (DISTSQL) SELECT (SELECT 1);

statement ok
EXPLAIN ANALYZE (DISTSQL) DELETE FROM a

statement ok
EXPLAIN ANALYZE (DISTSQL) DROP TABLE a

# Tests with EXPLAIN ANALYZE and subqueries.

statement ok
CREATE TABLE a (a INT PRIMARY KEY)

statement ok
INSERT INTO a VALUES(1)

statement ok
PREPARE x AS EXPLAIN ANALYZE(DISTSQL) SELECT 1 WHERE EXISTS (SELECT * FROM a WHERE a = $1) AND EXISTS (SELECT 1 WHERE EXISTS (SELECT * FROM a WHERE a = $2))

statement ok
EXECUTE x(1, 2)

statement ok
PREPARE y AS EXPLAIN ANALYZE(DISTSQL) SELECT 1 WHERE EXISTS (SELECT * FROM a WHERE a = $1) AND EXISTS (SELECT 1 WHERE EXISTS (SELECT * FROM a WHERE a = $1))

statement ok
EXECUTE x(1, 1)

# Regression test for #34927.
statement ok
EXPLAIN ANALYZE (DISTSQL) DELETE FROM a WHERE true
