When I call the SPLIT_PART function, it looks like Vertica is running the SPLIT_PARTB function. This is confusing and not documented. If running SPLIT_PART means really running SPLIT_PARTB, we should at least mention that. It's preferable to fix the output;
=> SELECT SPLIT_PART('abc~@~def~@~ghi', '~@~', 2);
split_partb
-------------
def
(1 row)
=> SELECT SPLIT_PART('123~|~456~|~789', '~|~', 3);
split_partb
-------------
789
(1 row)