parse
CREATE TYPE a AS ENUM ()
----
CREATE TYPE a AS ENUM ()
CREATE TYPE a AS ENUM () -- fully parenthesized
CREATE TYPE a AS ENUM () -- literals removed
CREATE TYPE _ AS ENUM () -- identifiers removed

parse
CREATE TYPE IF NOT EXISTS a AS ENUM ()
----
CREATE TYPE IF NOT EXISTS a AS ENUM ()
CREATE TYPE IF NOT EXISTS a AS ENUM () -- fully parenthesized
CREATE TYPE IF NOT EXISTS a AS ENUM () -- literals removed
CREATE TYPE IF NOT EXISTS _ AS ENUM () -- identifiers removed

parse
CREATE TYPE a AS ENUM ('a')
----
CREATE TYPE a AS ENUM ('a')
CREATE TYPE a AS ENUM ('a') -- fully parenthesized
CREATE TYPE a AS ENUM ('a') -- literals removed
CREATE TYPE _ AS ENUM (_) -- identifiers removed

parse
CREATE TYPE a AS ENUM ('a', 'b', 'c')
----
CREATE TYPE a AS ENUM ('a', 'b', 'c')
CREATE TYPE a AS ENUM ('a', 'b', 'c') -- fully parenthesized
CREATE TYPE a AS ENUM ('a', 'b', 'c') -- literals removed
CREATE TYPE _ AS ENUM (_, _, _) -- identifiers removed

parse
CREATE TYPE a.b AS ENUM ('a', 'b', 'c')
----
CREATE TYPE a.b AS ENUM ('a', 'b', 'c')
CREATE TYPE a.b AS ENUM ('a', 'b', 'c') -- fully parenthesized
CREATE TYPE a.b AS ENUM ('a', 'b', 'c') -- literals removed
CREATE TYPE _._ AS ENUM (_, _, _) -- identifiers removed

parse
CREATE TYPE a.b.c AS ENUM ('a', 'b', 'c')
----
CREATE TYPE a.b.c AS ENUM ('a', 'b', 'c')
CREATE TYPE a.b.c AS ENUM ('a', 'b', 'c') -- fully parenthesized
CREATE TYPE a.b.c AS ENUM ('a', 'b', 'c') -- literals removed
CREATE TYPE _._._ AS ENUM (_, _, _) -- identifiers removed

parse
CREATE TYPE foo AS (a INT)
----
CREATE TYPE foo AS (a INT8) -- normalized!
CREATE TYPE foo AS (a INT8) -- fully parenthesized
CREATE TYPE foo AS (a INT8) -- literals removed
CREATE TYPE _ AS (_ INT8) -- identifiers removed

parse
CREATE TYPE foo AS (a INT, b x)
----
CREATE TYPE foo AS (a INT8, b x) -- normalized!
CREATE TYPE foo AS (a INT8, b x) -- fully parenthesized
CREATE TYPE foo AS (a INT8, b x) -- literals removed
CREATE TYPE _ AS (_ INT8, _ _) -- identifiers removed

parse
CREATE TYPE foo AS ()
----
CREATE TYPE foo AS ()
CREATE TYPE foo AS () -- fully parenthesized
CREATE TYPE foo AS () -- literals removed
CREATE TYPE _ AS () -- identifiers removed

parse
CREATE TYPE foo AS (a "What A wild Thing To Call A Type", b "🌟 ")
----
CREATE TYPE foo AS (a "What A wild Thing To Call A Type", b "🌟 ")
CREATE TYPE foo AS (a "What A wild Thing To Call A Type", b "🌟 ") -- fully parenthesized
CREATE TYPE foo AS (a "What A wild Thing To Call A Type", b "🌟 ") -- literals removed
CREATE TYPE _ AS (_ _, _ _) -- identifiers removed
