# LogicTest: local local-opt local-parallel-stmts fakedist fakedist-opt fakedist-metadata

statement ok
CREATE TABLE kv (
  k CHAR PRIMARY KEY,
  v CHAR
)

query TT
SELECT * FROM kv
----

statement ok
INSERT INTO kv (k,v) VALUES ('a', 'b'); INSERT INTO kv (k,v) VALUES ('c', 'd')

query TT rowsort
SELECT * FROM kv
----
a b
c d

# error if either statement returns an error
# first statement returns an error. Second stmt shouldn't execute.
statement error duplicate key value \(k\)=\('a'\) violates unique constraint "primary"
INSERT INTO kv (k,v) VALUES ('a', 'b'); INSERT INTO kv (k,v) VALUES ('e', 'f')

query TT rowsort
SELECT * FROM kv
----
a b
c d

# second statement returns an error
statement error duplicate key value \(k\)=\('a'\) violates unique constraint "primary"
INSERT INTO kv (k,v) VALUES ('g', 'h'); INSERT INTO kv (k,v) VALUES ('a', 'b')

query TT rowsort
SELECT * FROM kv
----
a b
c d
g h

# parse error runs nothing
statement error syntax error at or near "k"
INSERT INTO kv (k,v) VALUES ('i', 'j'); INSERT INTO VALUES ('k', 'l')

query TT rowsort
SELECT * FROM kv
----
a b
c d
g h

statement error pq: relation "x.y" does not exist
BEGIN; INSERT INTO x.y(a) VALUES (1); END

statement error pq: current transaction is aborted, commands ignored until end of transaction block
SELECT * from kv; ROLLBACK

statement ok
ROLLBACK

statement error pgcode 42P01 relation "system.t" does not exist
BEGIN TRANSACTION; SELECT * FROM system.t; INSERT INTO t(a) VALUES (1)
