parse
DROP FUNCTION f
----
DROP FUNCTION f
DROP FUNCTION f -- fully parenthesized
DROP FUNCTION f -- literals removed
DROP FUNCTION _ -- identifiers removed

parse
DROP FUNCTION IF EXISTS f
----
DROP FUNCTION IF EXISTS f
DROP FUNCTION IF EXISTS f -- fully parenthesized
DROP FUNCTION IF EXISTS f -- literals removed
DROP FUNCTION IF EXISTS _ -- identifiers removed

parse
DROP FUNCTION f CASCADE
----
DROP FUNCTION f CASCADE
DROP FUNCTION f CASCADE -- fully parenthesized
DROP FUNCTION f CASCADE -- literals removed
DROP FUNCTION _ CASCADE -- identifiers removed


parse
DROP FUNCTION f, g
----
DROP FUNCTION f, g
DROP FUNCTION f, g -- fully parenthesized
DROP FUNCTION f, g -- literals removed
DROP FUNCTION _, _ -- identifiers removed

parse
DROP FUNCTION f(int)
----
DROP FUNCTION f(INT8) -- normalized!
DROP FUNCTION f(INT8) -- fully parenthesized
DROP FUNCTION f(INT8) -- literals removed
DROP FUNCTION _(INT8) -- identifiers removed

parse
DROP FUNCTION f(a int)
----
DROP FUNCTION f(a INT8) -- normalized!
DROP FUNCTION f(a INT8) -- fully parenthesized
DROP FUNCTION f(a INT8) -- literals removed
DROP FUNCTION _(_ INT8) -- identifiers removed

parse
DROP FUNCTION f(a IN int)
----
DROP FUNCTION f(IN a INT8) -- normalized!
DROP FUNCTION f(IN a INT8) -- fully parenthesized
DROP FUNCTION f(IN a INT8) -- literals removed
DROP FUNCTION _(IN _ INT8) -- identifiers removed

parse
DROP FUNCTION f(a int, b string)
----
DROP FUNCTION f(a INT8, b STRING) -- normalized!
DROP FUNCTION f(a INT8, b STRING) -- fully parenthesized
DROP FUNCTION f(a INT8, b STRING) -- literals removed
DROP FUNCTION _(_ INT8, _ STRING) -- identifiers removed
