On Sun, 28 Dec 2003, Terrence Brannon wrote:

> running the below program show that table names are quoted automatically 
> under MySQL-4.016 and DBD::mysql 2.9003.
> This wasn't happening about 2 weeks ago when I ran the entire test suite 
> and it passed.
> 

Intersting the quoting has been in there since 2.9002 -- I don't think 
that anything changed wrt quoting in 2.9002.

> needless to say, this is causing some problems with the MySQL part of 
> the test suite, when checking that all tables that were
> supposed to be created were created. We can code around it in the test 
> suite, but it would be nice to have some way of turning
> off this feature.

DBD::mysql does not do the quoting itself. The quoting is a feature of the 
DBI;  Quoting the DBI docs:


           If "$dbh->get_info(29)" returns true (29 is SQL_IDENTI-
           FIER_QUOTE_CHAR) then the table names are constructed and 
quoted by
           "quote_identifier" to ensure they are usable even if they 
contain
           whitespace or reserved words etc

Versions of DBD::mysql < 2.9002 did not implement get_info(), so when DBI 
went looking for the quote char, it did not get anything back, and 
therefore, did not quote the table names.

I can't think of an easy way to turn the quoting off from DBD::mysql other
than making $dbh->get_info(29)  return undef, but that would affect all
calls to get_info and possibly break applications that require the table
names to be quoted :(


> use DBI;
> 
> my $dbh = DBI->connect('dbi:mysql:test') or die $!;
> 
> warn $dbh->tables;
> warn $DBD::mysql::VERSION;
> 
>   ~/hacks/dbirs/eg $ perl small.pl
> `dbix_rs5``dbix_rs6``dbixrs1``dbixrs2``dbixrs3``dbixrs4``dbixrsdel``dbixseq` 
> at small.pl line 5.
> 2.9003 at small.pl line 6.
>         ~/hacks/dbirs/eg $

I must admit that I have not used DBIx::Recordset before, and I have just
done a cursory scanning of the docs, so please forgive anthing that I may 
have overlooked.

That being said, how does DBIx::Recordset handle a search with a !Table
like, "This is a"" del!mited \Itdentifier as &^% a table 'na`me'."?  or
maybe a table named "select"?  Does the end-user have to use
$dbh->quote_indentifier()  first?


Rudy



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to