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 "numeric">
> >> > >> > > > > > > > >        <cfqueryparam value="#value#"
> >> > cfsqltype="cf_sql_float"
> >> > >> > > > > > > > > list="#param.list#" null="#param.isNull#">
> >>
> >> > >> > > > > > > > > Which takes any "numeric" property of a defined
> Transfer
> >> > object
> >> > >> > > and
> >> > >> > > > > > > > > forces it to float, even if the database has it
> marked
> >> > as
> >> > >> > > BIGINT.
> >>
> >> > >> > > > > > > > > On Aug 4, 11:17 am, Jennifer Larkin <
> [email protected]>
> >> > wrote:
> >> > >> > > > > > > > >> I've used transfer with tons of bigint columns and
> >> > never had
> >> > >> > > this
> >> > >> > > > > > > > >> problem. I would assume that your key is bigint
> and not
> >> > float,
> >> > >> > > but
> >> > >> > > > > you
> >> > >> > > > > > > > >> aren't having a problem with the key being set as
> >> > float. So
> >> > >> > > the
> >> > >> > > > > > > > >> question is, why does this work for some columns
> and
> >> > not for
> >> > >> > > > > others.
> >>
> >> > >> > > > > > > > >> What is the datatype on the column that is getting
> >> > saved
> >> > >> > > correctly
> >> > >> > > > > and
> >> > >> > > > > > > > >> the one that is getting saved incorrectly?
> >>
> >> > >> > > > > > > > >> On Tue, Aug 4, 2009 at 10:36 AM, whostheJBoss<
> >> > >> > > > > > > [email protected]> wrote:
> >>
> >> > >> > > > > > > > >> > Ok, I've figured it out.
> >>
> >> > >> > > > > > > > >> > This was absolutely something in Transfer.
> >>
> >> > >> > > > > > > > >> > In:
> >>
> >> > >> > > > > > > > >> > transfer.com.sql.QueryExecution
> >>
> >> > >> > > > > > > > >> > This line:
> >>
> >> > >> > > > > > > > >> > <cfelseif block.mapparam.type eq "numeric">
> >> > >> > > > > > > > >> >        <cfqueryparam value="#value#"
> >> > >> > > cfsqltype="cf_sql_float"
> >> > >> > > > > > > > >> > list="#param.list#" null="#param.isNull#">
> >>
> >> > >> > > > > > > > >> > If I replace it with:
> >>
> >> > >> > > > > > > > >> > <cfelseif block.mapparam.type eq "numeric">
> >> > >> > > > > > > > >> >        <cfqueryparam value="#value#"
> >> > >> > > cfsqltype="CF_SQL_BIGINT"
> >> > >> > > > > > > > >> > list="#param.list#" null="#param.isNull#">
> >>
> >> ...
> >>
> >> read more ยป
> > >
> >
>
>
>
> --
> "Nothing says mother's love like a giant robotic platypus butt!"
> Phineas and Ferb
>
> Now blogging....
> http://www.blivit.org/blog/index.cfm
> http://www.blivit.org/mr_urc/index.cfm
>
> >
>


-- 
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