After reading all the reasoning I'vechanged my mind too so:
+1 for error me too

The discussion had a positive result, I'll feel less sad when doing that last 
rtrim or substring or whatever ;)

thankyou everybody 

Il martedì 27 gennaio 2009 16:01:07 Kay Roepke ha scritto:
> On 27.01.2009 15:27 Uhr, Kristian Nielsen wrote:
> > Kay Roepke<[email protected]>  writes:
> >> the common perl mistake (since we are showing off our m4d scr1pt sk1llz
> >> ;)):
> >>
> >> classdump:~ kroepke$ perl
> >> my @a = (1,2,3,4,undef,5);
> >> print "select a from t where b in (" . join(",", @a) . ");\n";
> >> ^D
> >> select a from t where b in (1,2,3,4,,5);
> >
> > But of course, in Perl you would never do this, since we have DBI and all
> > the nice Perl data structure functionality. Instead you would do this:
> >
> > my @a = (1,2,3,4,undef,5);
> > $dbh->selectall_arrayref("select a from t where b in (" . join(",",
> > map("?", @a)) . ")", undef, @a);
> >
> > Which avoid the problem as well as any risk of SQL injection.
> >
> > SQL is code, values for key lookups are data. Mixing them is _bad_. And
> > at least in Perl with DBI and placeholders, there is no need to mix them.
>
> hence my reference to "mistake". i've seen it happen time and again.
> plus simply filtering out the undefs will make it work, but still masks
> the underlying problem (the probable bug of having undef in there in the
> first place).
>
> anyway, this is getting off-topic quickly :)
>
> to at least bring it on-topic a bit:
> i think altering the SQL dialect to cater for sloppy SQL generation is
> the wrong approach. error out, give a sensible message, let the
> application developer deal with it.
>
> cheers,
> -k


_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to