[ruby-dev:50013] [Ruby trunk Bug#13149] Ruby 2.4.0 の CSV の field_size_limit オプションで先読み文字数を制限できない

From: naruse@...
Date: 2017-03-11 17:45:22 UTC
List: ruby-dev #50013
Issue #13149 has been updated by Yui NARUSE.

Backport changed from 2.2: DONTNEED, 2.3: DONTNEED, 2.4: REQUIRED to 2.2: DONTNEED, 2.3: DONTNEED, 2.4: DONE

ruby_2_4 r57868 merged revision(s) 57406.

----------------------------------------
Bug #13149: Ruby 2.4.0 の CSV の field_size_limit オプションで先読み文字数を制限できない
https://bugs.ruby-lang.org/issues/13149#change-63457

* Author: Masataka SUZUKI
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
* Backport: 2.2: DONTNEED, 2.3: DONTNEED, 2.4: DONE
----------------------------------------
Ruby 2.4.0 から、指定文字数未満で例外が出る事も、指定文字数以上で例外が出ない事もあります。

以下、指定文字数未満で例外が出るケース。

~~~ruby
require 'csv'

CSV.new(DATA, field_size_limit: 4).each { |x| p x }

__END__
"a","b"
"
2
",""
~~~

~~~
$ ruby test.rb
["a", "b"]
~/.rbenv/versions/2.4.0/lib/ruby/2.4.0/csv.rb:1931:in `block in shift': Field size exceeded on line 2. (CSV::MalformedCSVError)
        from ~/.rbenv/versions/2.4.0/lib/ruby/2.4.0/csv.rb:1828:in `loop'
        from ~/.rbenv/versions/2.4.0/lib/ruby/2.4.0/csv.rb:1828:in `shift'
        from ~/.rbenv/versions/2.4.0/lib/ruby/2.4.0/csv.rb:1770:in `each'
        from test.rb:3:in `<main>'
~~~

以下、指定文字数以上で例外が出ないケース。

~~~ruby
require 'csv'

CSV.new(DATA, field_size_limit: 5).each { |x| p x }

__END__
"a","b"
"
2345
",""
~~~

~~~
$ ruby test.rb
["a", "b"]
["\n2345\n", ""]
~~~



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next