Open emgee3 opened 10 years ago
Sorry this has gone unresponded to for so long. I definitely think it's a good feature request, but have no ETA on implementation. If it's important for your project, you should consider fixing it yourself and submitting a pull request. Otherwise, I'll leave this open and someone will get to it eventually.
I currently have a solution that just returns any number with > 53 bits of data as a String but not sure this is the most elegant solution. I'm more than willing to implemented the elegant solution, would just like some advisement on the best way to do so.
I would like to get a number back instead of a string.
A question about implementation, we know that BIGINTs can be >53 bits of data but is there a max number of bits or is it like Python's long type? It could be that BIGINTS are returned as a LONG (an npm module for 64 bit integers) or another similar type.
I thought about this a bit in the context of https://github.com/tediousjs/tedious/issues/490 @cdmcnamara We don't want to return different data types depending on the value, that just makes it more difficult to code against.
@Nokel81 Using a npm module like bignum seems reasonable but it'll break all existing code. So it'll need to be config option, not turned on by default.
If this sounds like a good idea to enough folks, I can look into it coding this some time.
@arthurschreiber for thoughts.
Hi there, I guess ultimately it would be nice to be able to define custom encoders in tedious, ref. #678. A workaround idea that worked for me: cast the Decimal column to Varchar in the SELECT statement, maybe even cast to Bigint.
Is this thing is not available yet?
Is this PR going to be merged? https://github.com/tediousjs/tedious/pull/1493
Really need a feature to optionally return numeric value as string as we have long decimal numbers
Hi @ml-rex , will bring this PR up again. See if we can work with @arthurschreiber update and merge this if there is not other concern on this change. I think Arthur has a another idea under #678 for refactor data type handling that should also cover this is, but we have not got the band width to actually to work on it yet.
Values returned from BigInt datatypes are returned as JavaScript strings ( https://github.com/pekim/tedious/blob/master/src/tracking-buffer/bigint.coffee), due to JavaScript numbers being limited to 53 bits of data.
Decimal and Numeric types can also expand beyond this range. It would be nice to (optionally) allow sending and receiving numeric data as Strings for Decimal and Numeric types.
For a project I'm working on the id column of the table is a Decimal, so this would be useful.