Forgive me for asking a simplistic question: What’s the advantage for you to write these as functions rather than, say, adding a new column in a view?
Would you use the same predicate on multiple tables? Is there a performance benefit?
Would you use the same predicate on multiple tables? Is there a performance benefit?
That said, in the case of wanting to abstract out or reuse joins, just write a view, I guess. And I get a lot of mileage in Postgres from just writing functions to abstract out predicates, because it allows you to write things like `select * from order where order.is_complete` instead of `where is_complete(order)`