Hi!

On Oct 31, 2009, at 11:59 AM, John David Duncan wrote:

The final result is not easy to grok. (Base 10^9?? One's complement!? And as Sheeri said, how big on disk??) But decimal.c is really only about 3,000 lines of code, including a 100-line comment on the SQL standard and a 200-line test suite. GMP is more like 50,000 lines.

GMP can do a lot more feature-wise and can handle a much larger set of numbers then what the hand written one can.

So I'd like to make the case that it's pretty remarkable code. A database *must* have a fixed decimal type, this design has some real advantages over others, and there's nothing else out there that you can really just drop in to replace it.

Looking at the code there really isn't much in the way of tests (200 lines is pretty small). One of the other things I noticed was that when reading the comments I found that it followed the standard bug for bug (aka... behavior wise). Is that really way someone expects?

I went and looked at the one PG is using. No limitations on size, doesn't follow the SQL standard,...

I'm not sure that I buy the disk format being the absolute best. Internally when it was pushed several folks pointed out other solutions which, I have no idea, might have been better then this one. What I do know though is that it is not that complete.

One question I ask myself... do we want to have to extend this library to add additional functions? For that matter, what functions matter for a database beyond comparison operations? There was a good argument to go with the GMP since it was complete, widely used, and had a community that worked on it. While right now? We will be stuck extending our own library, that only we use.

There is also the question of numerical constraint, what matters?

I'm on the fence. I know this will go sometime, but I don't know when. I hate creating upgrade paths though.

Cheers,
        -Brian


I'd urge you folks to consider giving the decimal library a new lease on life by reusing it in drizzle.


On Oct 30, 2009, at 11:44 AM, Brian Aker wrote:

Hi!

I'm working through some reference checking right now, and decided to look at decimal. Just for those playing along at home, up until 5.0 MySQL just stored DECIMAL as a string, mostly, and did all operations on it through normal mathematical operations. Starting in 5.0 we switched to a library and internal developer wrote which should mimic the SQL standard (and if you read the header in the subject you can find out some of the absurd bits it is doing).

Would anyone care if we dropped this in favor of just using one of the GNU based arbitrary libraries in the future? GMP perhaps (though it is not quite the same)? I'm a minimalist when it comes to built in types so I tend to favor this approach, but I would like to hear from others as well.

Cheers,
        -Brian

BTW any thoughts on long double over our current use of double? It looks like it would be a mess.

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



_______________________________________________
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