theory/pgtap

function_owner_is broken due to _get_func_owner (maybe for not using _funkargs?)

wphilips53 opened this issue · 1 comments

passing an "args" array of ['varchar', 'varchar'] fails but passing array of ['character varying', 'character varying'] succeeds.
Failure message is "tested function does not exist"

Oh interesting. I bet there are a bunch of places we could switch to _funkargs(). It looks like we added it in 2888bb8 to address a different issue — resolving argument types in the schema path. That would be helpful for testing all function arguments, I would think. And it looks like there are quite a few spots that might benefit from this change:

rg 'args\s+=' sql/pgtap.sql.in 
2562:           AND args = _funkargs($3)
2577:           AND args = _funkargs($2)
5564:       AND f.args   = array_to_string($3, ',')
5582:       AND f.args = array_to_string($2, ',')
5665:       AND args   = array_to_string($3, ',')
5678:       AND args = array_to_string($2, ',')
5756:       AND args   = array_to_string($3, ',')
5769:       AND args = array_to_string($2, ',')
5907:       AND args   = array_to_string($4, ',')
5922:       AND args = array_to_string($3, ',')
6062:       AND args   = array_to_string($3, ',')
6075:       AND args = array_to_string($2, ',')
6222:       AND f.args   = array_to_string($3, ',')
6236:       AND f.args = array_to_string($2, ',')
8688:       AND args   = array_to_string($3, ',')
8696:       AND args = array_to_string($2, ',')