I would have immediate use for this. So often a function is written with a table name as a parameter and it's not immediately clear if the schema is to be parsed out of the string, prescribed, or a separate parameter...in which case the function signature now has a clumsy optional schema parameter somewhere. I've written this bit of code probably five times now, let's make it a solved problem.
text[] return seems most sensible. While I can see the use for a record output, it wouldn't be used as often.
here is a patch
I cannot to use current SplitIdentifierString because it is designed for different purpose - and it cannot to separate non identifier part. But the code is simple - and will be cleaned. postgres=# select * from parse_ident('"AHOJ".NAZDAR[]'::text); ┌───────────────┬───────┐ │ parts │ other │ ╞═══════════════╪═══════╡ │ {AHOJ,nazdar} │ [] │ └───────────────┴───────┘ (1 row)