I only need to change those functions, which have to handle the new column.
Sure, though I think you'd still have a problem if a column gets renamed? But don't get me wrong, I'm not fixated on this argument against SELECT * - you know your database better than I do, so it may be possible for you to say now that columns will never get renamed and adding columns will be rare, even in the future. I just have been enjoying writing code using SQL::Abstract via Mojo::Pg, and I see several advantages over hard-coded SQL (there are of course disadvantages too, like slightly more verbose code in certain cases, and I assume the performance is not as good when compared to hard-coded SQL). I do still have a few hard-coded SQL statements in my codebase too.