To be clear,

If the testing works across the board, then I have no problem changing it,
but if it doesn't, then I can't change it, and we need to start looking at
alternate solutions.

Mark

On Sat, Aug 15, 2009 at 10:29 AM, Mark Mandel <[email protected]> wrote:

> You will need to check that when using cf_sql_double works for inserts,
> updates and selects for:
>
> all integer values
> all floating point numbers as well
>
> Across all the databases.
>
> My issue is not with whether or not it is a bug. My issue is if it's going
> to break Transfer for 99% of Transfer's user base, which use Adobe
> ColdFusion.
>
> Mark
>
>
>
> On Sat, Aug 15, 2009 at 10:13 AM, whostheJBoss <[email protected]
> > wrote:
>
>>
>> Sure, can you give me a tiny bit of direction on what needs to be
>> tested? What kind of values I need to try, etc.
>>
>> I don't have access to an Oracle server at the moment, so that's the
>> only one I can't test. Jennifer seems to be a veteran at this though,
>> so perhaps she could take my test case and try it on her server?
>>
>> The reason I'm so passionate about it is because I want it to work
>> correctly. I don't like having to modify my Transfer away from the
>> version you provide just to get this working.
>>
>> I am at CFUnited right now, have been hanging out with a lot of
>> different people and getting opinions. EVERY single person I have
>> talked to, including top-level developers whose names you know (and
>> some people you know personally), agree that this is a bug in Adobe CF
>> and a bug in Transfer that reflects that. You, as the developer,
>> wouldn't have had any way to really know this though without hitting
>> my test case. So, I can't blame you for defending your point.
>>
>> The reason I'm seeing the error now is because I'm building a Facebook
>> application and they now have long IDs and recommend using BIGINT to
>> store the ID. I'm sure more people will begin to see this behavior as
>> well soon.
>>
>> If all FLOAT become DOUBLE to Adobe, then there is technically no such
>> thing as FLOAT in Adobe CF. So why do they even represent it as an
>> option?
>>
>> If FLOAT becomes DOUBLE, then using double in Transfer is the same as
>> using FLOAT as far as ColdFusion is concerned, so none of the
>> databases should break because they are ALREADY getting a double.
>>
>> If: cf_sql_float in CF is really cf_sql_double, then changing your
>> line of code to cf_sql_double won't change ANYTHING about how CF
>> servers handle it. They are already doing everything as double.
>>
>>  The only thing this would change would be that Railo would begin to
>> work, since it DOES distinguish FLOAT from DOUBLE.
>>
>> On Aug 14, 3:00 pm, Mark Mandel <[email protected]> wrote:
>> > whostheJBoss,
>> >
>> > You seem pretty passionate about this, which is fair enough.
>> >
>> > The thing is though - this needs to be tested on:
>> >
>> > CF7, Oracle, MySQL, SQLServer, Postgres
>> > CF8, Oracle, MySQL, SQLServer, Postgres
>> > CF9, Oracle, MySQL, SQLServer, Postgres
>> > Railo, Oracle, MySQL, SQLServer, Postgres
>> >
>> > Are you willing to do the testing?
>> >
>> > Mark
>> >
>> > On Sat, Aug 15, 2009 at 5:27 AM, Jennifer Larkin <[email protected]>
>> wrote:
>> >
>> > > And according to Mark's message, double isn't compatible across
>> > > databases and while it is compatible across the two mentioned in this
>> > > thread, those are not the only two databases. Which do you think is
>> > > more reasonable for him:
>> > > supporting a database that doesn't support double
>> > > fixing an extreme edge case involving railo and 9 digit integer
>> > > precision that until now, you are the only one to encounter
>> >
>> > > On Fri, Aug 14, 2009 at 12:17 PM,
>> > > whostheJBoss<[email protected]> wrote:
>> >
>> > > > But double works in both...
>> >
>> > > > On Aug 13, 6:02 pm, Mark Mandel <[email protected]> wrote:
>> > > >> When I wrote it, 'float' was the only cfqueryparam that worked
>> across
>> > > >> databases for both integer and floating point numbers.
>> >
>> > > >> I can't remember if I tested double or not.
>> >
>> > > >> This is where we start getting into the differences between CF
>> > > engines...
>> > > >> and there is not much I can do about that.
>> >
>> > > >> I break for one, or I break for the other :P
>> >
>> > > >> Mark
>> >
>> > > >> On Fri, Aug 14, 2009 at 4:22 AM, Jennifer Larkin <
>> [email protected]>
>> > > wrote:
>> >
>> > > >> > Since when is "working better than expected" a "bug?"
>> >
>> > > >> > On Thu, Aug 13, 2009 at 10:04 AM,
>> > > >> > whostheJBoss<[email protected]> wrote:
>> >
>> > > >> > > Thoughts on this Mark? This is definitely a bug in CF that is
>> > > >> > > reflected as a bug in Transfer. This is, I repeat, NOT a bug in
>> > > Railo.
>> > > >> > > As of now I have to change the numeric mapping to double to get
>> my
>> > > >> > > insert to work...
>> >
>> > > >> > > On Aug 10, 12:10 pm, whostheJBoss <[email protected]>
>> > > wrote:
>> > > >> > >> Ok, well, I've taken this up with Railo and...
>> >
>> > >http://groups.google.com/group/railo/browse_thread/thread/d8e20b98308.
>> > > >> > ..
>> >
>> > > >> > >> Any thoughts on this Mark?
>> >
>> > > >> > >> If you want the short version...
>> >
>> > > >> > >> "What happens if you change the line from "cf_sql_float"to
>> > > >> > >> "cf_sql_double" or "cf_sql_decimal"?   I bet it's a truncation
>> > > issue,
>> > > >> > >> where ColdFusion considers cf_sql_float and cf_sql_double to
>> be
>> > > >> > >> equivalent, but Railo is correctly using reduced precision for
>> > > >> > >> cf_sql_float (causing your erroneous value).  To put that
>> another
>> > > way,
>> > > >> > >> I suspect a bug in ColdFusion (not reducing precision on
>> > > cf_sql_float)
>> > > >> > >> is masking a bug in Transfer (using an imprecise type for
>> numerics)
>> > > >> > >> that Railo's correct implementation (reducing cf_sql_float
>> > > precision)
>> > > >> > >> unmasks.  :)
>> >
>> > > >> > >> cheers,
>> > > >> > >> barneyb"
>> >
>> > > >> > >> "I'm pretty sure all that's needed for confirmation is to
>> change
>> > > the
>> > > >> > >> type from cf_sql_float to cf_sql_decimal or cf_sql_double and
>> > > confirm
>> > > >> > >> that that fixes the issue (just like cf_sql_bigint) does.
>> > > >> > >> --
>> > > >> > >> Barney Boisvert
>> > > >> > >> [email protected]http://www.barneyb.com/";
>> >
>> > > >> > >> "Hi whostheJBoss
>> >
>> > > >> > >> Railo translate CF_SQL_FLOAT to java.sql.Types.FLOAT
>> > > >> > >> then java.sql.PreparedStatement.setFloat(int index,float
>> value) is
>> > > >> > >> used
>> > > >> > >> in this case,
>> > > >> > >> i think adobeCF use java.sql.PreparedStatement.setDouble(int
>> > > >> > >> index,double value) instead of setFloat.
>> >
>> > > >> > >> but this is definitly the wrong way, like barney has written
>> before
>> > > >> > >> "cf_sql_double" or "cf_sql_decimal  is the way to go.
>> > > >> > >> from my perspective it is wrong to change this to "setDouble".
>> >
>> > > >> > >> what do you thnk?
>> >
>> > > >> > >> greetings micha
>> >
>> > > >> > >> --
>> > > >> > >> Michael Offner-Streit
>> > > >> > >> CTO
>> > > >> > >> Railo Technologies GmbH
>> > > >> > >> [email protected]"
>> >
>> > > >> > >> On Aug 5, 5:23 pm, Mark Mandel <[email protected]> wrote:
>> >
>> > > >> > >> > numeric maps to using cf_sql_float.
>> >
>> > > >> > >> > cf_sql_float is a parameter that will correctly handle
>> floating
>> > > points
>> > > >> > >> > across databases.
>> >
>> > > >> > >> > It seems that Railo has an issue with how it is mapping
>> > > cf_sql_float,
>> > > >> > so it
>> > > >> > >> > cannot handle BigInt values in the database you are using,
>> > > whereas on
>> > > >> > CF it
>> > > >> > >> > has no such trouble.
>> >
>> > > >> > >> > Mark
>> >
>> > > >> > >> > On Thu, Aug 6, 2009 at 10:07 AM, whostheJBoss <
>> > > >> > [email protected]>wrote:
>> >
>> > > >> > >> > > You happen to know what part of Transfer the bug is
>> affecting?
>> > > I'd
>> > > >> > be
>> > > >> > >> > > happy to take it up with the guys at Railo, just need to
>> know
>> > > what I
>> > > >> > >> > > should be asking.
>> >
>> > > >> > >> > > Is Transfer checking the column type of the objects and
>> then
>> > > using
>> > > >> > >> > > that type to wrap them with a cfsqltype? Does that mean
>> Railo
>> > > is not
>> > > >> > >> > > providing this information to Transfer, so then it is
>> falling
>> > > back
>> > > >> > on
>> > > >> > >> > > the default cfsqltype for numeric, which in this case
>> happens
>> > > to be
>> > > >> > >> > > float?
>> >
>> > > >> > >> > > Basically, is Transfer unable to get the type from Railo
>> so it
>> > > runs
>> > > >> > >> > > this:
>> >
>> > > >> > >> > > <cfelseif block.mapparam.type eq "numeric">
>> > > >> > >> > >     <cfqueryparam value="#value#" cfsqltype="cf_sql_float"
>> > > >> > >> > > list="#param.list#" null="#param.isNull#">
>> >
>> > > >> > >> > > And sets it to float?
>> >
>> > > >> > >> > > Thanks!
>> >
>> > > >> > >> > > On Aug 5, 4:52 pm, Mark Mandel <[email protected]>
>> wrote:
>> > > >> > >> > > > Sounds like a bug in Railo to me.
>> >
>> > > >> > >> > > > Mark
>> >
>> > > >> > >> > > > On Wed, Aug 5, 2009 at 8:18 AM, whostheJBoss <
>> > > >> > [email protected]
>> > > >> > >> > > >wrote:
>> >
>> > > >> > >> > > > > You always manage to come in and say something very
>> simple
>> > > and I
>> > > >> > go
>> > > >> > >> > > > > "Oh yeah!!!"
>> >
>> > > >> > >> > > > > Anyway, CF9 has no problem with this, so it must be...
>> a
>> > > Railo
>> > > >> > thing.
>> > > >> > >> > > > > Err, a Transfer / Railo thing.
>> >
>> > > >> > >> > > > > So, what can be done to have Transfer see the right
>> data
>> > > type in
>> > > >> > >> > > > > Railo?
>> >
>> > > >> > >> > > > > Thanks!!!
>> >
>> > > >> > >> > > > > On Aug 4, 2:52 pm, Mark Mandel <[email protected]
>> >
>> > > wrote:
>> > > >> > >> > > > > > You're also on Railo aren't you?
>> >
>> > > >> > >> > > > > > Mark
>> >
>> > > >> > >> > > > > > On Wed, Aug 5, 2009 at 6:17 AM, whostheJBoss <
>> > > >> > >> > > [email protected]
>> > > >> > >> > > > > >wrote:
>> >
>> > > >> > >> > > > > > > By the way, thanks for helping!!! :)
>> >
>> > > >> > >> > > > > > > On Aug 4, 12:31 pm, Jennifer Larkin <
>> [email protected]
>> >
>> > > >> > wrote:
>> > > >> > >> > > > > > > > Which version of MySQL are you using?
>> >
>> > > >> > >> > > > > > > > OK, so looking again at the two values in
>> question:
>> > > >> > >> > > > > > > >1474075992
>> > > >> > >> > > > > > > >1474076030
>> >
>> > > >> > >> > > > > > > > It is certainly feasible that you have
>> encountered a
>> > > >> > floating
>> > > >> > >> > > point
>> > > >> > >> > > > > > > > error. In a ten digit number, the second number
>> is
>> > > off by
>> > > >> > 38. The
>> > > >> > >> > > > > > > > thing is, Transfer doesn't cause floating point
>> > > errors--
>> > > >> > they are
>> > > >> > >> > > the
>> > > >> > >> > > > > > > > cause of the software that Transfer runs on, and
>> > > MySQL has
>> > > >> > >> > > floating
>> > > >> > >> > > > > > > > point errors. I've used Transfer on Oracle and
>> as I
>> > > said,
>> > > >> > I've
>> > > >> > >> > > never
>> > > >> > >> > > > > > > > encountered this problem.
>> >
>> > > >> > >> > > > > > > > So, I looked up MySQL floating point errors and
>> > > discovered
>> > > >> > this
>> > > >> > >> > > > > article:
>> >
>> > > >> >http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html
>> >
>> > > >> > >> > > > > > > > Which leads me to believe that if you are using
>> a
>> > > version
>> > > >> > of
>> > > >> > >> > > MySQL
>> > > >> > >> > > > > > > > prior to 5.0.5, that you should upgrade to
>> 5.0.5,
>> > > which
>> > > >> > has
>> > > >> > >> > > greater
>> > > >> > >> > > > > > > > floating point precision.
>> >
>> > > >> > >> > > > > > > > On Tue, Aug 4, 2009 at 12:09 PM, whostheJBoss<
>> > > >> > >> > > > > [email protected]>
>> > > >> > >> > > > > > > wrote:
>> >
>> > > >> > >> > > > > > > > > The column in question here is not a key, it's
>> an
>> > > >> > additional
>> > > >> > >> > > field,
>> > > >> > >> > > > > > > > > nothing special. Just a BIGINT named customID,
>> but
>> > > it's
>> > > >> > not the
>> > > >> > >> > > > > > > > > primary key. The primary key field is userID.
>> >
>> > > >> > >> > > > > > > > > As of now, any column with datatype INT or
>> BIGINT
>> > > is
>> > > >> > being
>> > > >> > >> > > saved
>> > > >> > >> > > > > > > > > incorrectly by Transfer. This one in
>> particular was
>> > > INT,
>> > > >> > then I
>> > > >> > >> > > > > > > > > changed to BIGINT trying to fix the problem.
>> So, as
>> > > of
>> > > >> > now it
>> > > >> > >> > > is
>> > > >> > >> > > > > > > > > BIGINT and will be staying that way.
>> >
>> > > >> > >> > > > > > > > > The same column using the exact same SQL that
>> > > Transfer
>> > > >> > >> > > generates in
>> > > >> > >> > > > > a
>> > > >> > >> > > > > > > > > regular <cfquery> work fine because it isn't
>> > > wrapped in
>> > > >> > >> > > > > > > > > cfsqltype="cf_sql_float" query param which is
>> > > invisible
>> > > >> > to the
>> > > >> > >> > > > > debug
>> > > >> > >> > > > > > > > > output. (Which is why I didn't see it before.)
>> >
>> > > >> > >> > > > > > > > > The column it does work for is VARCHAR, which
>> makes
>> > > >> > complete
>> > > >> > >> > > sense.
>> > > >> > >> > > > > It
>> > > >> > >> > > > > > > > > just takes the number and inserts it as a
>> string.
>> >
>> > > >> > >> > > > > > > > > Transfer has this statement:
>> >
>> > > >> > >> > > > > > > > > <cfelseif block.mapparam.type eq
>> >
>> > ...
>> >
>> > read more ยป
>> >>
>>
>
>
> --
> E: [email protected]
> T: http://www.twitter.com/neurotic
> W: www.compoundtheory.com
>
>


-- 
E: [email protected]
T: http://www.twitter.com/neurotic
W: www.compoundtheory.com

--~--~---------~--~----~------------~-------~--~----~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
"transfer-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to