in reply to dbd anydata does not return the correct result set

The docs are confusing on this point, but try specifying the column names in the same format as the data, in this case Pipe separated:
{ col_names => 'col1|col2|col3|...colN' }