Hi All, I submitted a bug via the email interface to rt: bug-dbd-oracle at rt.cpan.org, but I have no reason to believe that bug report got through. I didn't want to have to register a bunch of places to submit a bug, but I'm willing to if its the only way. Otherwise, is there someplace I can see if my bug got through correctly?
Here's the text of my report FWIW: Subject: execute_array does not honor UTF8 flag like execute does (and like docs say it should) Body: Hi All. When a statement with placeholders is 'execute'd then DBD::Oracle follows the docs as per the section 'Sending Data using Placeholders', with respect to bound variables with the utf8 flag set (i.e a "Perl Unicode string"). However, if 'execute_array' is used, only the NLS_LANG controls this behavior (and database values can be corrupted as a result). This appears to be due to the fact that dbdimp.c:do_bind_array_exec doesn't (actually CAN'T) have the same logic that the the other 'rebind' methods have for handling UTF8. My suggestion: * execute and execute_array MUST have the exact same semantics * in the guts of ora_st_execute_array, have the code check in the nested 'for' loops over the data for consistency of the utf8 flag across the entire list of values for a given placeholder * if all of the values are UTF8, use the existing approach as the normal bind (check csform, csid etc) * if some values are UTF8, others are not, croak with "cannot mix Unicode and native encoding in execute_array for placeholder :foo" I'm not subscribed to anything, so if possible, cc me on any follow ups? Thanks, David
