DBD::mysql の quote_identifier の挙動
mysql.xs のこのへんを参照のこと。
case SQL_IDENTIFIER_QUOTE_CHAR:
/*XXX What about a DB started in ANSI mode? */
/* Swiped from MyODBC's get_info.c */
using_322 = ((strncmp(mysql_get_server_info(imp_dbh->pmysql),"3.
22",4) == 0) ? 1 : 0 ); retsv = newSVpv(!using_322 ? "`" : " ", 1); break;
要するに、` がハードコードされている!!!!!!!!
そして、quote_identifier の実装は https://github.com/perl5-dbi/dbi/blob/master/DBI.pm#L1564 のへんにある。quote character を用意するまでは DBD のしごとで、実際にクオートするのは DBI のしごとってことみたい。
Published: 2014-11-28(Fri) 08:09