in reply to Re^2: SQL::Statement confusing literals and identifiers
in thread SQL::Statement confusing literals and identifiers
Ok, to restore my credibility, here's a workaround:
It's a bug alright. At some point the code lines up the requested columns, and the columns the table has to offer. It chokes on the fact that the q{SET} eq q{"SET"} equality fails to hold. It's because at some point the double quotes need to be stripped away, to recover the bare column name underneath and that is not (no longer?) happening.
What is strange is that there appears to be code in there that does just this, but has been commented out. In any event, the following patch seems to do the trick, but one would have to run the full regression test suite to be sure.
--- Statement.pm Tue Mar 11 13:13:43 2008 +++ /usr/local/lib/perl5/site_perl/5.8.8/SQL/Statement.pm Tue Ma +r 11 13:23:05 2008 @@ -1590,6 +1590,7 @@ ); } next unless $col; + $col =~ s/\A"([^"]+)"\z/$1/; ###new if (ref $table eq 'SQL::Statement::Table') { $table = $table->name;
• another intruder with the mooring in the heart of the Perl
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: SQL::Statement confusing literals and identifiers (now with workaround!)
by ikegami (Patriarch) on Mar 11, 2008 at 19:29 UTC | |
|
Re^4: SQL::Statement confusing literals and identifiers (now with workaround!)
by bcarroll (Pilgrim) on May 28, 2009 at 14:31 UTC |