I have a function with a conditional result. Based on the argument value it should either return varchar or int or uuid or timestamp.
What should the return type of that function be?
CodePudding user response:
SQL is strictly typed. The simple solution is to return one text field. Every value can be cast to text. (You might add a second return column holding the type name as meta information.)
Alternatively, return four typed fields (varchar, int, uuid, timestamp), and only fill one of them, depending on the result.
A polymorphic function would only be an option if you can tell the return type at call time and pass typed input accordingly.
Related:
