Am I correct in assuming that the max length of a string is 65,535 on a 32 bit platform? Anyway around this, other classes, 64 bit platform?
TIA, Jeffrey
Am I correct in assuming that the max length of a string is 65,535 on a 32 bit platform? Anyway around this, other classes, 64 bit platform?
TIA, Jeffrey
Jeffrey L. Taylor wrote:
Am I correct in assuming that the max length of a string is 65,535 on a 32 bit platform? Anyway around this, other classes, 64 bit platform?
TIA, Jeffrey
What would make you assume this? Simplest demonstration:
irb(main):004:0> s = "a"*70000;nil => nil irb(main):005:0> s.size => 70000 irb(main):006:0>
Also, keep in mind Ruby has no separate representation for raw 8bit data. Only Strings. How would it be able to store a 65KB+ file in memory?
The only limit to Ruby string is is available memory.
Paul Harrington wrote:
Jeffrey L. Taylor wrote:
Am I correct in assuming that the max length of a string is 65,535 on a 32 bit platform? Anyway around this, other classes, 64 bit platform?
TIA, Jeffrey
What would make you assume this? Simplest demonstration:
irb(main):004:0> s = "a"*70000;nil => nil irb(main):005:0> s.size => 70000 irb(main):006:0>
Also, keep in mind Ruby has no separate representation for raw 8bit data. Only Strings. How would it be able to store a 65KB+ file in memory?
The only limit to Ruby string is is available memory.
btw that irb session was irb(main):001:0> RUBY_VERSION => "1.9.1" irb(main):002:0> RUBY_PLATFORM => "i386-mingw32"
Quoting Paul Harrington <lists@ruby-forum.com>:
Paul Harrington wrote: > Jeffrey L. Taylor wrote: >> Am I correct in assuming that the max length of a string is 65,535 on a >> 32 bit >> platform? Anyway around this, other classes, 64 bit platform? >> >> TIA, >> Jeffrey > > What would make you assume this? Simplest demonstration: > > irb(main):004:0> s = "a"*70000;nil > => nil > irb(main):005:0> s.size > => 70000 > irb(main):006:0> > > Also, keep in mind Ruby has no separate representation for raw 8bit > data. Only Strings. How would it be able to store a 65KB+ file in > memory? > > The only limit to Ruby string is is available memory.
btw that irb session was irb(main):001:0> RUBY_VERSION => "1.9.1" irb(main):002:0> RUBY_PLATFORM => "i386-mingw32"
I find the same results. Checking further, I find that it's MySQL TEXT column that is limited to 65,535 bytes.
Thank you, Jeffrey
irb(main):001:0> s = "a"*70000;nil => nil irb(main):002:0> s.size => 70000 irb(main):003:0> RUBY_VERSION => "1.8.7" irb(main):004:0> RUBY_PLATFORM => "i586-linux" irb(main):005:0>
Indeed. However, if you specify a :limit value higher than 65535 in the migration that creates the text column Rails will promote it to a 'mediumtext', which has a limit of (I think) 16M. Pushing the limit past *that* will again promote the column to 'longtext', which has a limit >2G.
--Matt Jones