in reply to fetchall_arrayref hangs with placeholders query with no results

I think there are two problems - but the most important is that the syntax
select ? from ... where ..
isn't valid SQL.

?-style placeholders are used to pass variables into WHERE clauses, not to pass literals into the SELECT statement. I suspect that this is why your query only works if you specify the 4.x protocol level, as that does NOT support placeholders.

I'll still take a look at the issue you opened on GitHub, but I suspect that this is really a client side SQL issue more than anything else.