Roy Lyseng wrote:


Monty Taylor wrote:
Brian Aker wrote:
Hi!

On Jul 30, 2009, at 12:01 PM, Jeremy Zawodny wrote:

That's primary storage, right?  What about indexes?
Doubles the index size.

One problem about uint64_t... now all languages can support it.

I believe that's:

"not all languages can support it."

Java, for instance, does not have unsigned types, meaning uint64_t maps
to BigInteger, which is not directly compatible with other integral
types. (good job Java)

Good job Java... Do you know what the common type of INTEGER and UNSIGNED INTEGER in MySQL is?

It also means that an INT UNSIGNED has to become a 64-bit int in Java to
hold all of the values. Then again, Java translates all of your strings
into ucs2 internally, so I'm thinking that the extra byte or two of int
storage is probably not as much of an issue. :)

Because Java was designed for more people than Americans and Western Europeans?


Characters in Java were originally 16 bit unicode.  Now sometimes 16 bit
unicode and sometimes UTF-16.  Putting that aside, there was an
interesting internal MySQL engineering discussion a while back on that
on the storage efficiency of UTF-8, UTF-16, and UTF-32.  The guys from
Tokyo argued that because digits and punctuation were 8 bits on UTF-8,
in generation strings with shorter with UTF-8 than UTF-16.

Java was invented when it was generally considered that 16 bit Unicode
was sufficient.  It wasn't, but it wasn't a big mistake.  What Java did
that was revolutionary was to get rid of the concept of character sets,
recognizing that we all share a planet and sooner or later need to
communicate.

The database community would be well served to follow the example and
support only Unicode (32 bits, UTF-16, or UTF-8, pick one).

This has nothing to do with unsigned, however.  Let's make it really
simple:  Unsigned integers in database systems are really stupid.  There
basically isn't an application where 2**(x-1) is too small and 2**x where x is a multiple of 8 is sufficient, I'll go further and say all bounded types are dumb (particularly strings), but database guys aren't very good at thinking about variable length.

Wouldn't it just make for sense to declare a string as string like all modern languages and be done with it?




_______________________________________________
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