├── .gemtest
├── lib
├── mysql2xxxx
│ ├── version.rb
│ ├── writer
│ │ ├── json.rb
│ │ ├── csv.rb
│ │ └── xml.rb
│ ├── cli.rb
│ ├── writer.rb
│ └── config.rb
└── mysql2xxxx.rb
├── .gitignore
├── benchmark
├── five_thousand_rows.sql.bz2
├── target.rb
├── results
│ ├── 0.2.1-20120315104215-ruby19.txt
│ ├── 0.0.4-20110315110613-ruby19.txt
│ ├── 0.0.3-20110314153320.txt
│ ├── 0.0.4-20110314190640.txt
│ ├── 0.0.4-20110315110535-ruby18.txt
│ └── 0.0.3-20110314160922.txt
└── benchmark.rb
├── bin
├── mysql2csv
├── mysql2json
└── mysql2xml
├── Gemfile
├── CHANGELOG
├── test
├── test_active_record_config_stealing.rb
├── test_multiline_sql.rb
├── test_cli.rb
├── test_mysql2xxxx.rb
├── helper.rb
├── test_well_formedness.rb
├── test_extra_outputs.rb
└── fixtures
│ ├── automobile_makes.sql
│ └── automobile_make_years.sql
├── Rakefile
├── mysql2xxxx.gemspec
├── LICENSE
└── README.rdoc
/.gemtest:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lib/mysql2xxxx/version.rb:
--------------------------------------------------------------------------------
1 | module Mysql2xxxx
2 | VERSION = "0.3.0"
3 | end
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.gem
2 | .bundle
3 | Gemfile.lock
4 | pkg/*
5 | rdoc/*
6 | .DS_Store
7 |
--------------------------------------------------------------------------------
/benchmark/five_thousand_rows.sql.bz2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/seamusabshere/mysql2xxxx/HEAD/benchmark/five_thousand_rows.sql.bz2
--------------------------------------------------------------------------------
/bin/mysql2csv:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require "mysql2xxxx"
4 | require 'mysql2xxxx/cli'
5 |
6 | cli = Mysql2xxxx::Cli.new
7 | cli.parse_options
8 |
9 | Mysql2xxxx::CSV.new(cli.config).to_stdout
10 |
--------------------------------------------------------------------------------
/bin/mysql2json:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require "mysql2xxxx"
4 | require 'mysql2xxxx/cli'
5 |
6 | cli = Mysql2xxxx::Cli.new
7 | cli.parse_options
8 |
9 | Mysql2xxxx::JSON.new(cli.config).to_stdout
10 |
--------------------------------------------------------------------------------
/bin/mysql2xml:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require "mysql2xxxx"
4 | require 'mysql2xxxx/cli'
5 |
6 | cli = Mysql2xxxx::Cli.new
7 | cli.parse_options
8 |
9 | Mysql2xxxx::XML.new(cli.config).to_stdout
10 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "http://rubygems.org"
2 |
3 | gemspec
4 |
5 | gem 'rake'
6 | gem 'activerecord'
7 | gem 'posix-spawn'
8 |
9 | if RUBY_VERSION >= '1.9'
10 | gem 'ruby-debug19'
11 | else
12 | if RUBY_PLATFORM != 'java'
13 | gem 'memprof'
14 | end
15 | gem 'ruby-debug'
16 | end
17 |
--------------------------------------------------------------------------------
/CHANGELOG:
--------------------------------------------------------------------------------
1 | unreleased
2 |
3 | * Breaking changes
4 |
5 | * Requires ActiveRecord 3.1+
6 | * Requires (unreleased as of this writing) mysql2's streaming abilities
7 |
8 | * Enhancements
9 |
10 | * Replace mysql with mysql2 (possible because mysql2 0.3.x's streaming keeps memory use under control)
11 | * Use new MultiJson syntax
12 |
--------------------------------------------------------------------------------
/lib/mysql2xxxx.rb:
--------------------------------------------------------------------------------
1 | unless RUBY_VERSION >= '1.9'
2 | $KCODE = 'U'
3 | end
4 | require 'active_support'
5 | require 'active_support/version'
6 | require 'active_support/core_ext' if ::ActiveSupport::VERSION::MAJOR >= 3
7 |
8 | require 'mysql2'
9 |
10 | require 'mysql2xxxx/config'
11 | require 'mysql2xxxx/writer'
12 | require 'mysql2xxxx/writer/json'
13 | require 'mysql2xxxx/writer/csv'
14 | require 'mysql2xxxx/writer/xml'
15 |
16 | module Mysql2xxxx
17 | end
18 |
--------------------------------------------------------------------------------
/lib/mysql2xxxx/writer/json.rb:
--------------------------------------------------------------------------------
1 | require 'multi_json'
2 |
3 | module Mysql2xxxx
4 | class JSON < Writer
5 | def to_file(f)
6 | first = true
7 | f.write '['
8 | client.query(last_statement, :stream => true, :cache_rows => false).each do |hsh|
9 | next if hsh.nil?
10 | if first
11 | first = false
12 | else
13 | f.write ','
14 | end
15 | f.write ::MultiJson.dump(hsh)
16 | end
17 | f.write ']'
18 | nil
19 | end
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/test/test_active_record_config_stealing.rb:
--------------------------------------------------------------------------------
1 | require 'helper'
2 |
3 | # just to be able to steal the config
4 | ActiveRecord::Base.establish_connection(
5 | 'adapter' => 'mysql2',
6 | 'database' => TEST_DB,
7 | 'username' => MYSQL_USER,
8 | 'password' => MYSQL_PASS
9 | )
10 |
11 | class TestActiveRecordConfigStealing < Test::Unit::TestCase
12 | def test_steals_config
13 | a = Mysql2xxxx::JSON.new @options.slice(:execute)
14 | str = a.to_s
15 | assert str.include?('Acura')
16 | assert !str.include?('DaimlerChrysler')
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/Rakefile:
--------------------------------------------------------------------------------
1 | require 'bundler'
2 | Bundler::GemHelper.install_tasks
3 | require 'bundler/setup'
4 |
5 | require 'rake'
6 | require 'rake/testtask'
7 | Rake::TestTask.new(:test) do |test|
8 | test.libs << 'lib' << 'test'
9 | test.pattern = 'test/**/test_*.rb'
10 | test.verbose = true
11 | end
12 |
13 | task :default => :test
14 |
15 | begin
16 | require 'rake/rdoctask'
17 | Rake::RDocTask.new do |rdoc|
18 | rdoc.rdoc_dir = 'rdoc'
19 | rdoc.title = 'remote_table'
20 | rdoc.options << '--line-numbers' << '--inline-source'
21 | rdoc.rdoc_files.include('README*')
22 | rdoc.rdoc_files.include('lib/**/*.rb')
23 | end
24 | rescue LoadError
25 | puts "Rdoc is not available"
26 | end
27 |
--------------------------------------------------------------------------------
/lib/mysql2xxxx/cli.rb:
--------------------------------------------------------------------------------
1 | require 'mixlib/cli'
2 |
3 | module Mysql2xxxx
4 | class Cli
5 | include ::Mixlib::CLI
6 | %w{ user password host Port database }.each do |o|
7 | option o.downcase.to_sym,
8 | :short => "-#{o[0,1]} #{o.upcase}",
9 | :long => "--#{o.downcase}=#{o.upcase}",
10 | :description => "Set MySQL #{o.downcase}"
11 | end
12 | option :execute,
13 | :short => '-e EXECUTE',
14 | :long => '--execute=EXECUTE',
15 | :description => 'The SQL statement to execute'
16 | option :help,
17 | :long => "--help",
18 | :description => "Show this message",
19 | :on => :tail,
20 | :boolean => true,
21 | :show_options => true,
22 | :exit => 0
23 | end
24 | end
25 |
--------------------------------------------------------------------------------
/benchmark/target.rb:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | unless RUBY_VERSION >= '1.9'
3 | require 'rubygems'
4 | require 'memprof'
5 | end
6 | $LOAD_PATH.unshift File.join(ENV['HERE'], '..', 'lib')
7 | require 'mysql2xxxx'
8 |
9 | format = ARGV[0]
10 |
11 | if RUBY_VERSION >= '1.9'
12 | # unfortunately can't use memprof
13 | a = Mysql2xxxx.const_get(format).new :user => ENV['DBUSER'], :password => ENV['DBPASSWORD'], :database => ENV['DBNAME'], :execute => ENV['EXECUTE']
14 | a.to_path ENV['DUMP_PATH']
15 | else
16 | Memprof.track(ENV['MEMPROF_REPORT_PATH']) do
17 | a = Mysql2xxxx.const_get(format).new :user => ENV['DBUSER'], :password => ENV['DBPASSWORD'], :database => ENV['DBNAME'], :execute => ENV['EXECUTE']
18 | a.to_path ENV['DUMP_PATH']
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/test/test_multiline_sql.rb:
--------------------------------------------------------------------------------
1 | require 'helper'
2 |
3 | class TestMultilineSql < Test::Unit::TestCase
4 | def test_multiline_sql
5 | a = Mysql2xxxx::JSON.new @options.merge(:execute => %{
6 | DROP TABLE IF EXISTS t1; CREATE TEMPORARY TABLE t1 SELECT CONCAT_WS('-', year, make_name) AS crazy_name FROM automobile_make_years; SELECT * FROM t1
7 | })
8 | str = a.to_s
9 | assert str.include?('2002-Acura')
10 | end
11 | def test_multiline_sql_with_ending_semicolon
12 | a = Mysql2xxxx::JSON.new @options.merge(:execute => %{
13 | DROP TABLE IF EXISTS t1; CREATE TEMPORARY TABLE t1 SELECT CONCAT_WS('-', year, make_name) AS crazy_name FROM automobile_make_years; SELECT * FROM t1
14 | ;
15 | })
16 | str = a.to_s
17 | assert str.include?('2002-Acura')
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/lib/mysql2xxxx/writer/csv.rb:
--------------------------------------------------------------------------------
1 | if RUBY_VERSION >= '1.9'
2 | require 'csv'
3 | else
4 | require 'fastercsv'
5 | end
6 |
7 | module Mysql2xxxx
8 | class CSV < Writer
9 | SLASH_N = '\N'.freeze
10 | def to_file(f)
11 | slash_n = config.slash_n
12 |
13 | result = client.query(last_statement, :stream => true, :cache_rows => false, :as => :array)
14 | fields = result.fields
15 |
16 | if slash_n
17 | f.write fields.map { |v| v.nil? ? SLASH_N : v }.to_csv
18 | else
19 | f.write fields.to_csv
20 | end
21 |
22 | result.each do |ary|
23 | next if ary.nil?
24 | if slash_n
25 | f.write ary.map { |v| v.nil? ? SLASH_N : v }.to_csv
26 | else
27 | f.write ary.to_csv
28 | end
29 | end
30 |
31 | nil
32 | end
33 | end
34 | end
35 |
--------------------------------------------------------------------------------
/test/test_cli.rb:
--------------------------------------------------------------------------------
1 | require 'helper'
2 |
3 | class TestCli < Test::Unit::TestCase
4 | def test_xml
5 | a = POSIX::Spawn::Child.new %{mysql2xml --user=#{@options[:user]} --password=#{@options[:password]} --database=#{@options[:database]} --execute="#{@options[:execute]}"}
6 | assert a.out.include?('Acura')
7 | assert !a.out.include?('DaimlerChrysler')
8 | end
9 |
10 | def test_json
11 | a = POSIX::Spawn::Child.new %{mysql2json --user=#{@options[:user]} --password=#{@options[:password]} --database=#{@options[:database]} --execute="#{@options[:execute]}"}
12 | assert a.out.include?('Acura')
13 | assert !a.out.include?('DaimlerChrysler')
14 | end
15 |
16 | def test_csv
17 | a = POSIX::Spawn::Child.new %{mysql2csv --user=#{@options[:user]} --password=#{@options[:password]} --database=#{@options[:database]} --execute="#{@options[:execute]}"}
18 | assert a.out.include?('Acura')
19 | assert !a.out.include?('DaimlerChrysler')
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/lib/mysql2xxxx/writer/xml.rb:
--------------------------------------------------------------------------------
1 | module Mysql2xxxx
2 | class XML < Writer
3 | # sabshere 2/10/11 dkastner pointed out that this doesn't include metadata like later versions of mysql do
4 | # this matches the xml generated by "mysql --xml"
5 | # i tried to use builder, but the String#to_xs nonsense got in the way
6 | def to_file(f)
7 | result = client.query(last_statement, :stream => true, :cache_rows => false, :as => :array)
8 | escaped_fields = result.fields.map { |k| k.to_xs }
9 |
10 | f.write %{}
11 | f.write %{}
12 | result.each do |ary|
13 | next if ary.nil?
14 | f.write %{}
15 | ary.each_with_index do |v, i|
16 | f.write %{#{v.to_s.to_xs}}
17 | end
18 | f.write %{
}
19 | end
20 | f.write %{}
21 | nil
22 | end
23 | end
24 | end
25 |
--------------------------------------------------------------------------------
/mysql2xxxx.gemspec:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | require File.expand_path("../lib/mysql2xxxx/version", __FILE__)
3 |
4 | Gem::Specification.new do |s|
5 | s.name = "mysql2xxxx"
6 | s.version = Mysql2xxxx::VERSION
7 | s.authors = ["Seamus Abshere"]
8 | s.email = ["seamus@abshere.net"]
9 | s.homepage = "https://github.com/seamusabshere/mysql2xxxx"
10 | s.summary = %q{In a memory-sensitive way (but not fast), dump mysql tables to JSON, CSV, XML.}
11 | s.description = %q{Gives you binaries like mysql2csv, mysql2json, and mysql2xml, and Ruby classes to match.}
12 |
13 | s.rubyforge_project = "mysql2xxxx"
14 |
15 | s.files = `git ls-files`.split("\n")
16 | s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17 | s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18 | s.require_paths = ["lib"]
19 |
20 | s.add_dependency 'activesupport', '>=3.1'
21 | s.add_dependency 'mysql2', '>=0.3'
22 | s.add_dependency 'mixlib-cli'
23 | s.add_dependency 'fast_xs'
24 | s.add_dependency 'fastercsv'
25 | s.add_dependency 'multi_json'
26 | end
27 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013 Seamus Abshere
2 |
3 | MIT License
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | "Software"), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/test/test_mysql2xxxx.rb:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 | require 'helper'
3 |
4 | class TestMysql2xxxx < Test::Unit::TestCase
5 | def test_1_mysql2json
6 | a = Mysql2xxxx::JSON.new @options
7 | str = a.to_s
8 | assert str.include?('Acura')
9 | if RUBY_VERSION >= '1.9'
10 | assert str.include?('Citro\u00ebn')
11 | else
12 | assert str.include?('Citroën')
13 | end
14 | assert !str.include?('DaimlerChrysler')
15 | end
16 |
17 | def test_2_mysql2csv
18 | a = Mysql2xxxx::CSV.new @options
19 | str = a.to_s
20 | assert str.include?('Acura')
21 | assert str.include?('Citroën')
22 | assert !str.include?('DaimlerChrysler')
23 | end
24 |
25 | def test_3_mysql2xml
26 | a = Mysql2xxxx::XML.new @options
27 | str = a.to_s
28 | assert str.include?('Acura')
29 | assert str.include?('Citroën')
30 | assert !str.include?('DaimlerChrysler')
31 | end
32 |
33 | def test_4_slash_n_for_nulls
34 | a = Mysql2xxxx::CSV.new @options
35 | assert a.to_s.include?(',,')
36 | b = Mysql2xxxx::CSV.new @options.merge(:slash_n => true)
37 | assert b.to_s.include?(',\N,')
38 | end
39 | end
40 |
--------------------------------------------------------------------------------
/benchmark/results/0.2.1-20120315104215-ruby19.txt:
--------------------------------------------------------------------------------
1 | mysql2xxxx
2 | Version: 0.2.1
3 | Run: 2012-03-15 10:42:15 -0500
4 | System: Darwin alzabo0 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:32:41 PDT 2011; root:xnu-1504.15.3~1/RELEASE_X86_64 x86_64
5 |
6 | ##################################################
7 | # CSV
8 | ##################################################
9 | Real memory over time (sampled every 0.3 sec):
10 | 0:00.30 13772
11 | 0:00.58 24444
12 | 0:00.89 25084
13 | 0:01.19 25084
14 | Memprof object counts not available (ruby 1.9)
15 |
16 | ##################################################
17 | # JSON
18 | ##################################################
19 | Real memory over time (sampled every 0.3 sec):
20 | 0:00.30 13636
21 | 0:00.61 22288
22 | 0:00.91 22540
23 | 0:01.21 22540
24 | 0:01.52 22540
25 | 0:01.82 22540
26 | 0:02.12 22540
27 | 0:02.43 22540
28 | Memprof object counts not available (ruby 1.9)
29 |
30 | ##################################################
31 | # XML
32 | ##################################################
33 | Real memory over time (sampled every 0.3 sec):
34 | 0:00.30 13356
35 | 0:00.61 21660
36 | 0:00.91 21660
37 | Memprof object counts not available (ruby 1.9)
38 |
--------------------------------------------------------------------------------
/test/helper.rb:
--------------------------------------------------------------------------------
1 | require 'rubygems'
2 | require 'bundler'
3 | Bundler.setup
4 |
5 | if ::Bundler.definition.specs['debugger'].first
6 | require 'debugger'
7 | elsif ::Bundler.definition.specs['ruby-debug'].first
8 | require 'ruby-debug'
9 | end
10 |
11 | require 'test/unit'
12 | require 'fileutils'
13 | require 'active_record'
14 | require 'posix/spawn'
15 | require 'mysql2xxxx'
16 |
17 | MYSQL_USER = 'root'
18 | MYSQL_PASS = 'password'
19 | MYSQL_HOST = '127.0.0.1'
20 | TEST_DB = 'mysql2xxxx_test'
21 |
22 | def execute_sql(sql, db = 'mysql')
23 | POSIX::Spawn::Child.new %{mysql -u #{MYSQL_USER} -p#{MYSQL_PASS} --database="#{db}" --execute="#{sql}"}
24 | end
25 |
26 | execute_sql "DROP DATABASE IF EXISTS #{TEST_DB}"
27 | execute_sql "CREATE DATABASE #{TEST_DB}"
28 | execute_sql "SOURCE test/fixtures/automobile_makes.sql", TEST_DB
29 | execute_sql "SOURCE test/fixtures/automobile_make_years.sql", TEST_DB
30 |
31 | class Test::Unit::TestCase
32 | def setup
33 | @options = {
34 | :execute => %{SELECT * FROM automobile_makes WHERE automobile_makes.name IN (SELECT DISTINCT automobile_make_years.make_name FROM automobile_make_years)},
35 | :user => MYSQL_USER,
36 | :password => MYSQL_PASS,
37 | :database => TEST_DB,
38 | :host => MYSQL_HOST
39 | }
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/test/test_well_formedness.rb:
--------------------------------------------------------------------------------
1 | require 'helper'
2 |
3 | if RUBY_VERSION >= '1.9'
4 | require 'csv'
5 | else
6 | require 'fastercsv'
7 | end
8 |
9 | class TestWellFormedness < Test::Unit::TestCase
10 | def test_xml
11 | a = POSIX::Spawn::Child.new %{./bin/mysql2xml --user=#{@options[:user]} --password=#{@options[:password]} --database=#{@options[:database]} --execute="#{@options[:execute]}"}
12 | funny_looking_hash = Hash.from_xml a.out
13 | assert funny_looking_hash['resultset']['row'].one? { |hsh| hsh['field'][0] == 'Yugo' }
14 | end
15 |
16 | def test_json
17 | a = POSIX::Spawn::Child.new %{./bin/mysql2json --user=#{@options[:user]} --password=#{@options[:password]} --database=#{@options[:database]} --execute="#{@options[:execute]}"}
18 | array_of_hashes = MultiJson.load a.out
19 | assert array_of_hashes.one? { |hsh| hsh['name'] == 'Yugo' }
20 | end
21 |
22 | def test_csv
23 | a = POSIX::Spawn::Child.new %{./bin/mysql2csv --user=#{@options[:user]} --password=#{@options[:password]} --database=#{@options[:database]} --execute="#{@options[:execute]}"}
24 | found_yugo = false
25 | (defined?(FasterCSV) ? FasterCSV : CSV).parse(a.out, :headers => :first_row) do |row|
26 | found_yugo = true if row['name'] == 'Yugo'
27 | end
28 | assert found_yugo
29 | end
30 | end
31 |
--------------------------------------------------------------------------------
/test/test_extra_outputs.rb:
--------------------------------------------------------------------------------
1 | require 'helper'
2 |
3 | class TestExtraOutputs < Test::Unit::TestCase
4 | def test_mysql2json_to_s
5 | a = Mysql2xxxx::JSON.new @options
6 | str = a.to_s
7 | assert str.include?('Acura')
8 | assert !str.include?('DaimlerChrysler')
9 | end
10 |
11 | def test_mysql2json_to_path
12 | path = '/tmp/test_mysql2json_to_path'
13 | a = Mysql2xxxx::JSON.new @options
14 | a.to_path path
15 | assert File.read(path).include?('Acura')
16 | assert !File.read(path).include?('DaimlerChrysler')
17 | end
18 |
19 | def test_mysql2json_to_file
20 | f = File.open('/tmp/test_mysql2json_to_file', 'w')
21 | a = Mysql2xxxx::JSON.new @options
22 | a.to_file f
23 | f.close
24 | assert File.read(f.path).include?('Acura')
25 | assert !File.read(f.path).include?('DaimlerChrysler')
26 | end
27 |
28 | def test_mysql2json_to_stdout
29 | a = Mysql2xxxx::JSON.new @options
30 | begin
31 | require 'stringio'
32 | old_stdout = $stdout
33 | my_stdout = StringIO.new
34 | $stdout = my_stdout
35 | a.to_stdout
36 | $stdout = old_stdout
37 | my_stdout.rewind
38 | assert my_stdout.read.include?('Acura')
39 | assert !my_stdout.read.include?('DaimlerChrysler')
40 | ensure
41 | $stdout = old_stdout
42 | end
43 | end
44 | end
45 |
--------------------------------------------------------------------------------
/benchmark/results/0.0.4-20110315110613-ruby19.txt:
--------------------------------------------------------------------------------
1 | mysql2xxxx
2 | Version: 0.0.4
3 | Run: 2011-03-15 11:06:13 -0500
4 | System: Darwin vidalia 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
5 |
6 | ##################################################
7 | # CSV
8 | ##################################################
9 | Real memory over time (sampled every 0.3 sec):
10 | 0:00.31 12416
11 | 0:00.61 15264
12 | 0:00.92 15800
13 | 0:01.23 15800
14 | 0:01.54 15800
15 | Memprof object counts not available (ruby 1.9)
16 |
17 | ##################################################
18 | # JSON
19 | ##################################################
20 | Real memory over time (sampled every 0.3 sec):
21 | 0:00.31 12424
22 | 0:00.61 15576
23 | 0:00.91 15684
24 | 0:01.22 15852
25 | 0:01.53 15852
26 | 0:01.83 15852
27 | 0:02.14 15852
28 | 0:02.45 15852
29 | 0:02.75 15852
30 | 0:03.06 15852
31 | 0:03.37 15852
32 | 0:03.67 15852
33 | 0:03.97 15852
34 | Memprof object counts not available (ruby 1.9)
35 |
36 | ##################################################
37 | # XML
38 | ##################################################
39 | Real memory over time (sampled every 0.3 sec):
40 | 0:00.30 12928
41 | 0:00.60 14616
42 | 0:00.91 14616
43 | Memprof object counts not available (ruby 1.9)
44 |
--------------------------------------------------------------------------------
/lib/mysql2xxxx/writer.rb:
--------------------------------------------------------------------------------
1 | require 'stringio'
2 |
3 | module Mysql2xxxx
4 | class Writer
5 | attr_reader :config
6 |
7 | def initialize(options = {})
8 | @config = Config.new options
9 | end
10 |
11 | def last_statement
12 | return @last_statement if @last_statement.is_a? ::String
13 | statements = config.execute.split(';').select { |statement| statement.to_s.strip.length > 0 }
14 | last_statement = statements.pop
15 | statements.each do |statement|
16 | client.query statement
17 | # but we're not using the results, of course
18 | end
19 | @last_statement = last_statement
20 | end
21 |
22 | def client
23 | return @client if @client.is_a? ::Mysql2::Client
24 | @client = ::Mysql2::Client.new(:host => config.host, :username => config.user, :password => config.password, :database => config.database, :port => config.port, :socket => config.socket)
25 | end
26 |
27 | def to_s
28 | s = ::StringIO.new
29 | to_file s
30 | s.rewind
31 | s.read
32 | end
33 |
34 | def to_stdout
35 | to_file $stdout
36 | nil
37 | end
38 |
39 | def to_path(path)
40 | f = ::RUBY_VERSION >= '1.9' ? ::File.open(path, 'w', :binmode => true) : ::File.open(path, 'w')
41 | to_file f
42 | f.close
43 | nil
44 | end
45 | end
46 | end
47 |
--------------------------------------------------------------------------------
/README.rdoc:
--------------------------------------------------------------------------------
1 | =mysql2xxxx
2 |
3 | ==Binaries
4 |
5 | mysql2csv --user=dbuser --password=dbpassword --database=dbname --execute="select * from automobile_makes"
6 | mysql2json --user=dbuser --password=dbpassword --database=dbname --execute="select * from automobile_makes"
7 | mysql2xml --user=dbuser --password=dbpassword --database=dbname --execute="select * from automobile_makes"
8 |
9 | To see all options
10 |
11 | mysql2csv --help
12 |
13 | ==Ruby
14 |
15 | a = Mysql2xxxx::JSON.new :user => 'dbuser', :password => 'dbpassword', :database => 'dbname', :execute => "select * from automobile_makes"
16 | a.to_stdout # write it directly to $stdout
17 | puts a.to_s # get a string
18 | a.to_path('/tmp/outfile.json') # write it to a file at this path
19 | a.to_file(File.open('/tmp/outfile.json', 'w')) # write it to a file handle
20 |
21 | Note also that if you're running it inside a Rails application, it will default to the ActiveRecord connection config.
22 |
23 | a = Mysql2xxxx::JSON.new :execute => "select * from automobile_makes" # no need to specify user, etc. because it's taken from ActiveRecord
24 |
25 | ==Well-formedness
26 |
27 | * CSV output depends on FasterCSV to_csv
28 | * JSON output depends on Florian Frank's JSON JSON.generate
29 | * XML output is written manually, but looks like the output of mysql [hyphen][hyphen]xml
30 |
31 | Copyright 2011 Seamus Abshere
32 |
--------------------------------------------------------------------------------
/lib/mysql2xxxx/config.rb:
--------------------------------------------------------------------------------
1 | module Mysql2xxxx
2 | class Config
3 | attr_reader :user_specified_options
4 | def initialize(user_specified_options = {})
5 | @user_specified_options = user_specified_options.symbolize_keys
6 | end
7 |
8 | def user
9 | user_specified_options[:user] || active_record_config.try(:[], :username)
10 | end
11 |
12 | def password
13 | user_specified_options[:password] || active_record_config.try(:[], :password)
14 | end
15 |
16 | def host
17 | user_specified_options[:host] || active_record_config.try(:[], :host)
18 | end
19 |
20 | def port
21 | user_specified_options[:port] || active_record_config.try(:[], :port)
22 | end
23 |
24 | def socket
25 | user_specified_options[:socket] || active_record_config.try(:[], :socket)
26 | end
27 |
28 | def database
29 | user_specified_options[:database] || active_record_connection.try(:current_database)
30 | end
31 |
32 | def execute
33 | user_specified_options[:execute]
34 | end
35 |
36 | # Whether to write \N instead of a blank string for NULL. This is helpful for mysqlimport.
37 | #
38 | # Only applies to CSV
39 | def slash_n
40 | user_specified_options.fetch :slash_n, false
41 | end
42 |
43 | private
44 |
45 | def active_record_connection
46 | if defined?(::ActiveRecord)
47 | ::ActiveRecord::Base.connection
48 | end
49 | rescue
50 | # oh well
51 | end
52 |
53 | def active_record_config
54 | if active_record_connection
55 | active_record_connection.instance_variable_get :@config
56 | end
57 | end
58 | end
59 | end
60 |
--------------------------------------------------------------------------------
/benchmark/benchmark.rb:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | ENV['HERE'] = File.dirname(__FILE__)
4 | ENV['DBUSER'] = 'root'
5 | ENV['DBPASSWORD'] = 'password'
6 | ENV['DBNAME'] = 'mysql2xxxx_benchmark'
7 | ENV['MEMPROF_REPORT_PATH'] = File.expand_path('memprof.txt')
8 | ENV['DUMP_PATH'] = File.expand_path('a.dump')
9 | ENV['EXECUTE'] = 'SELECT * FROM five_thousand_rows'
10 | FORMATS = %w{ CSV JSON XML }
11 | SAMPLE_RATE = 0.3
12 | TOP_OBJECTS = 25
13 |
14 | require 'fileutils'
15 | unless RUBY_VERSION >= '1.9'
16 | require 'rubygems'
17 | end
18 | require 'posix/spawn'
19 | $LOAD_PATH.unshift File.join(ENV['HERE'], '..', 'lib')
20 | require 'mysql2xxxx'
21 | require 'mysql2xxxx/version'
22 |
23 | $stderr.puts "Loading sample data..."
24 | `bunzip2 #{ENV['HERE']}/five_thousand_rows.sql.bz2 -c | mysql -u #{ENV['DBUSER']} -p#{ENV['DBPASSWORD']} --database #{ENV['DBNAME']}`
25 |
26 | now = Time.now
27 | mem = {}
28 | $mem2 = {}
29 |
30 | begin
31 | FORMATS.each do |format|
32 | $stderr.puts "Benchmarking #{format}..."
33 | pid = POSIX::Spawn.spawn('ruby', "#{ENV['HERE']}/target.rb", format)
34 | watcher = Thread.new do
35 | while true
36 | sleep SAMPLE_RATE
37 | $mem2[format] ||= []
38 | $mem2[format] << `ps -o time= -o rss= -p #{pid}`
39 | end
40 | end
41 | Process.waitpid(pid)
42 | watcher.kill
43 | raise "target failed on #{format}" unless $?.success?
44 | mem[format] = IO.readlines(ENV['MEMPROF_REPORT_PATH'])[0..TOP_OBJECTS-1] unless RUBY_VERSION >= '1.9'
45 | end
46 | ensure
47 | FileUtils.rm_f ENV['MEMPROF_REPORT_PATH']
48 | FileUtils.rm_f ENV['DUMP_PATH']
49 | end
50 |
51 | $stderr.puts "Writing report..."
52 | File.open File.expand_path(File.join(ENV['HERE'], 'results', "#{Mysql2xxxx::VERSION}-#{now.to_formatted_s(:number)}-#{RUBY_VERSION >= '1.9' ? 'ruby19' : 'ruby18'}.txt")), 'w' do |f|
53 | f.puts %{mysql2xxxx}
54 | f.puts %{Version: #{Mysql2xxxx::VERSION}}
55 | f.puts %{Run: #{now}}
56 | f.puts %{System: #{`uname -a`}}
57 | FORMATS.each do |format|
58 | f.puts
59 | f.puts "#" * 50
60 | f.puts "# #{format}"
61 | f.puts "#" * 50
62 | f.puts %{Real memory over time (sampled every #{SAMPLE_RATE} sec):}
63 | f.puts $mem2[format]
64 | if RUBY_VERSION >= '1.9'
65 | f.puts %{Memprof object counts not available (ruby 1.9)}
66 | else
67 | f.puts %{Memprof object counts (top #{TOP_OBJECTS}):}
68 | f.puts mem[format]
69 | end
70 | end
71 | end
72 |
--------------------------------------------------------------------------------
/benchmark/results/0.0.3-20110314153320.txt:
--------------------------------------------------------------------------------
1 | mysql2xxxx
2 | Version: 0.0.3
3 | Run: Mon Mar 14 15:33:20 -0500 2011
4 | System: Darwin vidalia 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
5 |
6 | CSV
7 | Time: 5.2898850440979
8 | Memory:
9 | 55050 ./benchmark/../lib/mysql2xxxx/csv.rb:25:String
10 | 24858 ./benchmark/../lib/mysql2xxxx/csv.rb:25:Float
11 | 10000 (eval):4:Array
12 | 5423 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/rational.rb:94:Rational
13 | 5052 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:437:Array
14 | 5001 ./benchmark/../lib/mysql2xxxx/csv.rb:25:Hash
15 | 5000 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:754:Date
16 | 1320 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1798:String
17 | 1301 ./benchmark/../lib/mysql2xxxx/csv.rb:14:Array
18 | 1300 ./benchmark/../lib/mysql2xxxx/csv.rb:30:__varmap__
19 |
20 | JSON
21 | Time: 15.9774219989777
22 | Memory:
23 | 55050 ./benchmark/../lib/mysql2xxxx/json.rb:26:String
24 | 24858 ./benchmark/../lib/mysql2xxxx/json.rb:26:Float
25 | 10000 (eval):4:Array
26 | 5025 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/rational.rb:94:Rational
27 | 5003 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:437:Array
28 | 5001 ./benchmark/../lib/mysql2xxxx/json.rb:26:Hash
29 | 5000 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:754:Date
30 | 280 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:69:__node__
31 | 278 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:125:String
32 | 271 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:73:__node__
33 |
34 | XML
35 | Time: 5.43590211868286
36 | Memory:
37 | 55050 ./benchmark/../lib/mysql2xxxx/xml.rb:23:String
38 | 28467 ./benchmark/../lib/mysql2xxxx/xml.rb:26:String
39 | 24858 ./benchmark/../lib/mysql2xxxx/xml.rb:23:Float
40 | 12593 ./benchmark/../lib/mysql2xxxx/xml.rb:26:Array
41 | 10000 (eval):4:Array
42 | 7016 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/rational.rb:94:Rational
43 | 6300 ./benchmark/../lib/mysql2xxxx/xml.rb:25:Array
44 | 5251 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:437:Array
45 | 5001 ./benchmark/../lib/mysql2xxxx/xml.rb:23:Hash
46 | 5000 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:754:Date
47 |
--------------------------------------------------------------------------------
/test/fixtures/automobile_makes.sql:
--------------------------------------------------------------------------------
1 | -- MySQL dump 10.13 Distrib 5.1.41, for debian-linux-gnu (i486)
2 | --
3 | -- Host: 127.0.0.1 Database: data1
4 | -- ------------------------------------------------------
5 | -- Server version 5.1.41-3ubuntu12.8
6 |
7 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
8 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
9 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
10 | /*!40101 SET NAMES utf8 */;
11 | /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
12 | /*!40103 SET TIME_ZONE='+00:00' */;
13 | /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
14 | /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
15 | /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
16 | /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
17 |
18 | --
19 | -- Table structure for table `automobile_makes`
20 | --
21 |
22 | DROP TABLE IF EXISTS `automobile_makes`;
23 | /*!40101 SET @saved_cs_client = @@character_set_client */;
24 | /*!40101 SET character_set_client = utf8 */;
25 | CREATE TABLE `automobile_makes` (
26 | `name` varchar(255) NOT NULL DEFAULT '',
27 | `fuel_efficiency` float DEFAULT NULL,
28 | `fuel_efficiency_units` varchar(255) DEFAULT NULL,
29 | PRIMARY KEY (`name`)
30 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
31 | /*!40101 SET character_set_client = @saved_cs_client */;
32 |
33 | --
34 | -- Dumping data for table `automobile_makes`
35 | --
36 |
37 | LOCK TABLES `automobile_makes` WRITE;
38 | /*!40000 ALTER TABLE `automobile_makes` DISABLE KEYS */;
39 | INSERT INTO `automobile_makes` VALUES ('',NULL,'kilometres_per_litre'),('Acura',9.08129,'kilometres_per_litre'),('Alfa Romeo',10.4075,'kilometres_per_litre'),('Alpina',7.12301,'kilometres_per_litre'),('American Motors',8.83413,'kilometres_per_litre'),('Aston Martin',7.63597,'kilometres_per_litre'),('Audi',8.54408,'kilometres_per_litre'),('Avanti',6.64194,'kilometres_per_litre'),('Bentley',5.05366,'kilometres_per_litre'),('Bertone',12.5756,'kilometres_per_litre'),('Bitter',8.75492,'kilometres_per_litre'),('BMW',10.8585,'kilometres_per_litre'),('Bugatti',4.30568,'kilometres_per_litre'),('Buick',9.02433,'kilometres_per_litre'),('Cadillac',7.75072,'kilometres_per_litre'),('Chevrolet',7.84091,'kilometres_per_litre'),('Chrysler',10.3041,'kilometres_per_litre'),('Citroën',9.30681,'kilometres_per_litre'),('Citroën INC',6.83116,'kilometres_per_litre'),('Daewoo',12.1673,'kilometres_per_litre'),('Daihatsu',17.2183,'kilometres_per_litre'),('DaimlerChrysler',9.98344,'kilometres_per_litre'),('Dodge',7.37358,'kilometres_per_litre'),('Eagle',9.69909,'kilometres_per_litre'),('Excalibur',4.88915,'kilometres_per_litre'),('Ferrari',6.68364,'kilometres_per_litre'),('Fiat',10.5269,'kilometres_per_litre'),('Ford',10.2407,'kilometres_per_litre'),('Geo',11.9565,'kilometres_per_litre'),('GM',10.5065,'kilometres_per_litre'),('GMC',6.88051,'kilometres_per_litre'),('Honda',13.291,'kilometres_per_litre'),('Hummer',6.64142,'kilometres_per_litre'),('Hyundai',13.1387,'kilometres_per_litre'),('IHC',7.35499,'kilometres_per_litre'),('Impco',9.46286,'kilometres_per_litre'),('Infiniti',8.12203,'kilometres_per_litre'),('Isuzu',9.70585,'kilometres_per_litre'),('Jaguar',8.7687,'kilometres_per_litre'),('Jeep',7.01487,'kilometres_per_litre'),('Kia',11.8592,'kilometres_per_litre'),('Laforza',4.87946,'kilometres_per_litre'),('Lamborghini',5.03409,'kilometres_per_litre'),('Land Rover',6.12734,'kilometres_per_litre'),('Lexus',8.45328,'kilometres_per_litre'),('Lincoln',9.05273,'kilometres_per_litre'),('Lotus',11.9396,'kilometres_per_litre'),('Maserati',7.27185,'kilometres_per_litre'),('Maybach',5.47022,'kilometres_per_litre'),('Mazda',12.3846,'kilometres_per_litre'),('Mercedes-Benz',10.0622,'kilometres_per_litre'),('Mercury',7.64315,'kilometres_per_litre'),('Merkur',7.9813,'kilometres_per_litre'),('Mini',12.0537,'kilometres_per_litre'),('Mitsubishi',12.1768,'kilometres_per_litre'),('Morgan',7.62285,'kilometres_per_litre'),('Nissan',11.8682,'kilometres_per_litre'),('Oldsmobile',9.18457,'kilometres_per_litre'),('Panoz',9.88633,'kilometres_per_litre'),('Panther',11.6489,'kilometres_per_litre'),('Peugeot',10.9448,'kilometres_per_litre'),('Pininfarina',12.3193,'kilometres_per_litre'),('Plymouth',9.68965,'kilometres_per_litre'),('Pontiac',9.86449,'kilometres_per_litre'),('Porsche',10.0382,'kilometres_per_litre'),('Quantum',12.6395,'kilometres_per_litre'),('Qvale',7.8845,'kilometres_per_litre'),('Renault',14.6309,'kilometres_per_litre'),('Rolls-Royce',5.09656,'kilometres_per_litre'),('Roush Industries, Inc.',7.66709,'kilometres_per_litre'),('Rover',7.13526,'kilometres_per_litre'),('Saab',10.949,'kilometres_per_litre'),('Saleen',6.91581,'kilometres_per_litre'),('Saturn',10.6349,'kilometres_per_litre'),('Shelby',8.07773,'kilometres_per_litre'),('Spyker',8.27647,'kilometres_per_litre'),('Subaru',12.3556,'kilometres_per_litre'),('Suzuki',12.8985,'kilometres_per_litre'),('TCSTR',5.51797,'kilometres_per_litre'),('Tesla',103.735,'kilometres_per_litre'),('Toyota',12.3622,'kilometres_per_litre'),('TVR',8.80048,'kilometres_per_litre'),('Vector',4.29395,'kilometres_per_litre'),('Vector CORP',3.52924,'kilometres_per_litre'),('Volkswagen',12.4898,'kilometres_per_litre'),('Volvo',10.8427,'kilometres_per_litre'),('Yugo',14.2504,'kilometres_per_litre');
40 | /*!40000 ALTER TABLE `automobile_makes` ENABLE KEYS */;
41 | UNLOCK TABLES;
42 | /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
43 |
44 | /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
45 | /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
46 | /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
47 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
48 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
49 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
50 | /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
51 |
52 | -- Dump completed on 2011-02-08 8:41:18
53 |
--------------------------------------------------------------------------------
/benchmark/results/0.0.4-20110314190640.txt:
--------------------------------------------------------------------------------
1 | mysql2xxxx
2 | Version: 0.0.4
3 | Run: Mon Mar 14 19:06:40 -0500 2011
4 | System: Darwin vidalia 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
5 |
6 | ##################################################
7 | # CSV
8 | ##################################################
9 | Real memory over time (sampled every 0.3 sec):
10 | 0:00.30 13452
11 | 0:00.61 20140
12 | 0:00.91 19476
13 | 0:01.22 20152
14 | 0:01.53 18456
15 | 0:01.84 19632
16 | 0:02.14 20504
17 | Memprof object counts (top 25):
18 | 575 ./benchmark/../lib/mysql2xxxx/writer.rb:40:String
19 | 527 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1798:String
20 | 372 (__FORWARDABLE__):5:__node__
21 | 279 (__FORWARDABLE__):3:__node__
22 | 217 (__FORWARDABLE__):1:__node__
23 | 169 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1852:String
24 | 155 (__FORWARDABLE__):6:__node__
25 | 120 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/stringio.bundle:0:__node__
26 | 93 (__FORWARDABLE__):7:__node__
27 | 84 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1849:String
28 | 62 (__FORWARDABLE__):4:__node__
29 | 46 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1849:Array
30 | 44 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1091:Hash
31 | 43 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1092:__scope__
32 | 42 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1852:Method
33 | 42 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1852:MatchData
34 | 42 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1490:String
35 | 41 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/forwardable.rb:148:__node__
36 | 31 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:758:__node__
37 | 31 (__FORWARDABLE__):8:__node__
38 | 31 (__FORWARDABLE__):5:Regexp
39 | 25 ./benchmark/../lib/mysql2xxxx/writer.rb:11:String
40 | 24 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1831:Hash
41 | 24 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1830:Regexp
42 | 24 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1826:String
43 |
44 | ##################################################
45 | # JSON
46 | ##################################################
47 | Real memory over time (sampled every 0.3 sec):
48 | 0:00.31 13736
49 | 0:00.61 17536
50 | 0:00.91 17536
51 | 0:01.19 17536
52 | 0:01.41 17536
53 | 0:01.71 17536
54 | 0:02.02 17536
55 | 0:02.32 17536
56 | 0:02.63 17536
57 | 0:02.93 17536
58 | 0:03.24 17536
59 | 0:03.55 17536
60 | 0:03.85 17536
61 | 0:04.16 17536
62 | 0:04.47 17536
63 | 0:04.79 17536
64 | 0:05.09 17536
65 | 0:05.40 17536
66 | 0:05.71 17536
67 | 0:06.01 17536
68 | 0:06.32 17536
69 | 0:06.62 17536
70 | 0:06.93 17536
71 | 0:07.24 17536
72 | 0:07.55 17536
73 | 0:07.85 17536
74 | 0:08.16 17536
75 | 0:08.46 17536
76 | 0:08.77 17536
77 | 0:09.08 17536
78 | 0:09.38 17536
79 | 0:09.69 17536
80 | 0:10.00 17536
81 | 0:10.30 17536
82 | 0:10.61 17536
83 | Memprof object counts (top 25):
84 | 8360 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:125:String
85 | 6361 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:73:__node__
86 | 4261 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:235:Array
87 | 4183 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:132:String
88 | 2357 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:247:String
89 | 2191 ./benchmark/../lib/mysql2xxxx/writer.rb:48:String
90 | 2183 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:247:Array
91 | 2080 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:236:Array
92 | 280 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:69:__node__
93 | 260 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:70:__node__
94 | 249 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:61:Hash
95 | 170 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/syck.bundle:0:__node__
96 | 160 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:67:__node__
97 | 160 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:65:__node__
98 | 148 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:75:__node__
99 | 120 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/stringio.bundle:0:__node__
100 | 119 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:247:__node__
101 | 117 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/bigdecimal.bundle:0:__node__
102 | 109 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:237:__node__
103 | 105 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:68:__node__
104 | 103 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:235:__node__
105 | 87 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:41:Array
106 | 86 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:30:ActiveSupport::JSON::Encoding::Encoder
107 | 86 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:236:Hash
108 | 86 ./benchmark/../lib/mysql2xxxx/writer.rb:48:Hash
109 |
110 | ##################################################
111 | # XML
112 | ##################################################
113 | Real memory over time (sampled every 0.3 sec):
114 | 0:00.30 13668
115 | 0:00.61 16952
116 | 0:00.95 16952
117 | 0:01.26 17916
118 | 0:01.56 17532
119 | 0:01.87 17532
120 | 0:02.18 17976
121 | 0:02.41 18556
122 | Memprof object counts (top 25):
123 | 16407 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:16:String
124 | 5455 ./benchmark/../lib/mysql2xxxx/writer.rb:7:Array
125 | 5453 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:16:Array
126 | 5439 ./benchmark/../lib/mysql2xxxx/writer.rb:40:String
127 | 226 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:15:__node__
128 | 220 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:18:String
129 | 220 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:14:String
130 | 219 ./benchmark/../lib/mysql2xxxx/writer.rb:40:Array
131 | 120 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/stringio.bundle:0:__node__
132 | 28 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:16:__node__
133 | 25 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:4:String
134 | 25 ./benchmark/../lib/mysql2xxxx/writer.rb:11:String
135 | 20 ./benchmark/../lib/mysql2xxxx/writer.rb:16:__node__
136 | 18 ./benchmark/../lib/mysql2xxxx/writer.rb:33:__node__
137 | 14 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:12:__node__
138 | 12 ./benchmark/../lib/mysql2xxxx/writer.rb:11:__node__
139 | 12 ./benchmark/../lib/mysql2xxxx/config.rb:32:__node__
140 | 12 ./benchmark/../lib/mysql2xxxx/config.rb:28:__node__
141 | 12 ./benchmark/../lib/mysql2xxxx/config.rb:24:__node__
142 | 12 ./benchmark/../lib/mysql2xxxx/config.rb:20:__node__
143 | 11 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:4:__node__
144 | 10 ./benchmark/../lib/mysql2xxxx/config.rb:36:__node__
145 | 9 ./benchmark/../lib/mysql2xxxx/writer.rb:26:__node__
146 | 8 ./benchmark/../lib/mysql2xxxx/writer.rb:73:__node__
147 | 8 ./benchmark/../lib/mysql2xxxx/writer.rb:32:__node__
148 |
--------------------------------------------------------------------------------
/benchmark/results/0.0.4-20110315110535-ruby18.txt:
--------------------------------------------------------------------------------
1 | mysql2xxxx
2 | Version: 0.0.4
3 | Run: Tue Mar 15 11:05:35 -0500 2011
4 | System: Darwin vidalia 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
5 |
6 | ##################################################
7 | # CSV
8 | ##################################################
9 | Real memory over time (sampled every 0.3 sec):
10 | 0:00.30 11672
11 | 0:00.60 19936
12 | 0:00.91 19408
13 | 0:01.29 20460
14 | 0:01.56 20460
15 | 0:01.87 20460
16 | 0:02.17 20460
17 | Memprof object counts (top 25):
18 | 5044 ./benchmark/../lib/mysql2xxxx/writer.rb:43:String
19 | 5019 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1798:String
20 | 1617 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1852:String
21 | 808 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1849:String
22 | 408 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1849:Array
23 | 406 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1092:__scope__
24 | 405 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1091:Hash
25 | 404 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1852:Method
26 | 404 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1852:MatchData
27 | 404 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1490:String
28 | 372 (__FORWARDABLE__):5:__node__
29 | 279 (__FORWARDABLE__):3:__node__
30 | 217 (__FORWARDABLE__):1:__node__
31 | 206 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1092:String
32 | 205 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1826:String
33 | 205 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1734:String
34 | 205 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1423:Hash
35 | 204 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:2004:Hash
36 | 204 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1831:Hash
37 | 204 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1830:Regexp
38 | 204 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1826:Regexp
39 | 204 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1823:String
40 | 204 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1823:Regexp
41 | 204 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1820:Regexp
42 | 204 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1791:Proc
43 |
44 | ##################################################
45 | # JSON
46 | ##################################################
47 | Real memory over time (sampled every 0.3 sec):
48 | 0:00.30 12364
49 | 0:00.61 17128
50 | 0:00.94 17536
51 | 0:01.24 17536
52 | 0:01.54 17536
53 | 0:01.83 17536
54 | 0:02.12 17536
55 | 0:02.41 17536
56 | 0:02.70 17536
57 | 0:02.93 17536
58 | 0:03.06 17536
59 | 0:03.37 17536
60 | 0:03.68 17536
61 | 0:03.98 17536
62 | 0:04.28 17536
63 | 0:04.58 17536
64 | 0:04.88 17536
65 | 0:05.18 17536
66 | 0:05.48 17536
67 | 0:05.79 17536
68 | 0:06.10 17536
69 | 0:06.40 17536
70 | 0:06.71 17536
71 | 0:07.02 17536
72 | 0:07.36 17536
73 | 0:07.67 17536
74 | 0:07.97 17536
75 | 0:08.28 17536
76 | 0:08.59 17536
77 | 0:08.89 17536
78 | 0:09.20 17536
79 | 0:09.52 17536
80 | 0:09.82 17536
81 | 0:10.13 17536
82 | 0:10.44 17536
83 | 0:10.74 17536
84 | 0:11.04 17536
85 | Memprof object counts (top 25):
86 | 3792 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:125:String
87 | 2882 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:73:__node__
88 | 1922 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:235:Array
89 | 1898 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:132:String
90 | 1094 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:247:String
91 | 1022 ./benchmark/../lib/mysql2xxxx/writer.rb:51:String
92 | 989 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:247:Array
93 | 950 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:236:Array
94 | 280 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:69:__node__
95 | 260 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:70:__node__
96 | 170 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/syck.bundle:0:__node__
97 | 160 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:67:__node__
98 | 160 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:65:__node__
99 | 148 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:75:__node__
100 | 120 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/stringio.bundle:0:__node__
101 | 117 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/bigdecimal.bundle:0:__node__
102 | 114 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:61:Hash
103 | 105 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:68:__node__
104 | 73 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:247:__node__
105 | 64 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/deprecation/proxy_wrappers.rb:13:__node__
106 | 63 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:237:__node__
107 | 60 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:72:__node__
108 | 60 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:71:__node__
109 | 60 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:64:__node__
110 | 60 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:63:__node__
111 |
112 | ##################################################
113 | # XML
114 | ##################################################
115 | Real memory over time (sampled every 0.3 sec):
116 | 0:00.29 10920
117 | 0:00.54 18088
118 | 0:00.83 17836
119 | 0:01.12 17496
120 | 0:01.43 17836
121 | 0:01.73 18520
122 | 0:02.03 17496
123 | 0:02.33 18520
124 | Memprof object counts (top 25):
125 | 7638 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:16:String
126 | 2539 ./benchmark/../lib/mysql2xxxx/writer.rb:43:String
127 | 2538 ./benchmark/../lib/mysql2xxxx/writer.rb:7:Array
128 | 2537 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:16:Array
129 | 120 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/stringio.bundle:0:__node__
130 | 109 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:15:__node__
131 | 103 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:18:String
132 | 103 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:14:String
133 | 102 ./benchmark/../lib/mysql2xxxx/writer.rb:43:Array
134 | 28 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:16:__node__
135 | 25 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:4:String
136 | 25 ./benchmark/../lib/mysql2xxxx/writer.rb:11:String
137 | 22 ./benchmark/../lib/mysql2xxxx/writer.rb:35:__node__
138 | 20 ./benchmark/../lib/mysql2xxxx/writer.rb:16:__node__
139 | 14 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:12:__node__
140 | 14 ./benchmark/../lib/mysql2xxxx/config.rb:18:__node__
141 | 12 ./benchmark/../lib/mysql2xxxx/writer.rb:11:__node__
142 | 12 ./benchmark/../lib/mysql2xxxx/config.rb:36:__node__
143 | 12 ./benchmark/../lib/mysql2xxxx/config.rb:32:__node__
144 | 12 ./benchmark/../lib/mysql2xxxx/config.rb:14:__node__
145 | 12 ./benchmark/../lib/mysql2xxxx/config.rb:10:__node__
146 | 11 ./benchmark/../lib/mysql2xxxx/writer/xml.rb:4:__node__
147 | 10 ./benchmark/../lib/mysql2xxxx/writer.rb:34:__node__
148 | 10 ./benchmark/../lib/mysql2xxxx/config.rb:40:__node__
149 | 9 ./benchmark/../lib/mysql2xxxx/writer.rb:26:__node__
150 |
--------------------------------------------------------------------------------
/benchmark/results/0.0.3-20110314160922.txt:
--------------------------------------------------------------------------------
1 | mysql2xxxx
2 | Version: 0.0.3
3 | Run: Mon Mar 14 16:09:22 -0500 2011
4 | System: Darwin vidalia 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
5 |
6 | ##################################################
7 | # CSV
8 | ##################################################
9 | Real memory over time (sampled every 0.3 sec):
10 | 0:00.30 11204
11 | 0:00.56 20488
12 | 0:00.86 20876
13 | 0:01.17 30580
14 | 0:01.48 32684
15 | 0:01.79 33980
16 | 0:02.09 35268
17 | 0:02.39 36892
18 | 0:02.70 38004
19 | 0:03.01 39120
20 | 0:03.31 40264
21 | 0:03.62 41184
22 | 0:03.93 41292
23 | 0:04.24 41472
24 | 0:04.55 41736
25 | 0:04.85 49796
26 | 0:05.16 53260
27 | Memprof object counts (top 25):
28 | 55050 ./benchmark/../lib/mysql2xxxx/csv.rb:25:String
29 | 24858 ./benchmark/../lib/mysql2xxxx/csv.rb:25:Float
30 | 10000 (eval):4:Array
31 | 5423 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/rational.rb:94:Rational
32 | 5052 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:437:Array
33 | 5001 ./benchmark/../lib/mysql2xxxx/csv.rb:25:Hash
34 | 5000 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:754:Date
35 | 1320 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1798:String
36 | 1301 ./benchmark/../lib/mysql2xxxx/csv.rb:14:Array
37 | 1300 ./benchmark/../lib/mysql2xxxx/csv.rb:30:__varmap__
38 | 682 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1795:String
39 | 421 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1852:String
40 | 372 (__FORWARDABLE__):5:__node__
41 | 279 (__FORWARDABLE__):3:__node__
42 | 217 (__FORWARDABLE__):1:__node__
43 | 211 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1849:String
44 | 210 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:428:Float
45 | 210 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:426:Float
46 | 210 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:423:Float
47 | 210 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:422:Float
48 | 155 (__FORWARDABLE__):6:__node__
49 | 120 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/stringio.bundle:0:__node__
50 | 108 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:1383:String
51 | 108 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1849:Array
52 | 106 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1852:Method
53 |
54 | ##################################################
55 | # JSON
56 | ##################################################
57 | Real memory over time (sampled every 0.3 sec):
58 | 0:00.30 11560
59 | 0:00.56 19068
60 | 0:00.73 19508
61 | 0:01.04 19508
62 | 0:01.35 19508
63 | 0:01.65 23616
64 | 0:01.96 27984
65 | 0:02.27 28868
66 | 0:02.58 28896
67 | 0:02.89 29900
68 | 0:03.19 29904
69 | 0:03.50 29904
70 | 0:03.80 30352
71 | 0:04.11 31188
72 | 0:04.42 31264
73 | 0:04.72 32216
74 | 0:05.03 32216
75 | 0:05.34 32492
76 | 0:05.65 33240
77 | 0:05.95 33240
78 | 0:06.26 33996
79 | 0:06.56 34268
80 | 0:06.87 34268
81 | 0:07.18 34508
82 | 0:07.48 35292
83 | 0:07.79 35328
84 | 0:08.10 35328
85 | 0:08.40 36320
86 | 0:08.71 36320
87 | 0:09.02 36548
88 | 0:09.32 37348
89 | 0:09.63 37368
90 | 0:09.94 37652
91 | 0:10.25 38372
92 | 0:10.55 38372
93 | 0:10.86 38376
94 | 0:11.17 38376
95 | 0:11.47 38516
96 | 0:11.78 39400
97 | 0:12.08 39400
98 | 0:12.38 39404
99 | 0:12.69 39404
100 | 0:13.00 39404
101 | 0:13.31 46788
102 | 0:13.61 48948
103 | 0:13.92 48948
104 | 0:14.22 49860
105 | 0:14.53 49860
106 | 0:14.84 49860
107 | 0:15.15 50176
108 | 0:15.46 50828
109 | 0:15.76 50828
110 | 0:16.07 50996
111 | 0:16.37 50996
112 | Memprof object counts (top 25):
113 | 55050 ./benchmark/../lib/mysql2xxxx/json.rb:26:String
114 | 24858 ./benchmark/../lib/mysql2xxxx/json.rb:26:Float
115 | 10000 (eval):4:Array
116 | 5025 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/rational.rb:94:Rational
117 | 5003 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:437:Array
118 | 5001 ./benchmark/../lib/mysql2xxxx/json.rb:26:Hash
119 | 5000 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:754:Date
120 | 280 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:69:__node__
121 | 278 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:125:String
122 | 271 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:73:__node__
123 | 260 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:70:__node__
124 | 181 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:235:Array
125 | 170 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/syck.bundle:0:__node__
126 | 160 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:67:__node__
127 | 160 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:65:__node__
128 | 148 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:75:__node__
129 | 140 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:132:String
130 | 120 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0/stringio.bundle:0:__node__
131 | 117 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:247:String
132 | 105 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:68:__node__
133 | 96 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:247:Array
134 | 79 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/json/encoding.rb:236:Array
135 | 64 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/deprecation/proxy_wrappers.rb:13:__node__
136 | 60 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:72:__node__
137 | 60 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/yaml/tag.rb:71:__node__
138 |
139 | ##################################################
140 | # XML
141 | ##################################################
142 | Real memory over time (sampled every 0.3 sec):
143 | 0:00.30 11168
144 | 0:00.55 20512
145 | 0:00.83 20540
146 | 0:01.14 24940
147 | 0:01.45 31596
148 | 0:01.75 33208
149 | 0:02.06 34668
150 | 0:02.36 35856
151 | 0:02.66 36800
152 | 0:02.97 37756
153 | 0:03.28 39368
154 | 0:03.58 40392
155 | 0:03.89 41420
156 | 0:04.19 41420
157 | 0:04.50 41424
158 | 0:04.79 48808
159 | 0:05.01 51660
160 | Memprof object counts (top 25):
161 | 55050 ./benchmark/../lib/mysql2xxxx/xml.rb:23:String
162 | 28467 ./benchmark/../lib/mysql2xxxx/xml.rb:26:String
163 | 24858 ./benchmark/../lib/mysql2xxxx/xml.rb:23:Float
164 | 12593 ./benchmark/../lib/mysql2xxxx/xml.rb:26:Array
165 | 10000 (eval):4:Array
166 | 7016 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/rational.rb:94:Rational
167 | 6300 ./benchmark/../lib/mysql2xxxx/xml.rb:25:Array
168 | 5251 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:437:Array
169 | 5001 ./benchmark/../lib/mysql2xxxx/xml.rb:23:Hash
170 | 5000 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:754:Date
171 | 1007 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:423:Float
172 | 1006 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:428:Float
173 | 1006 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:426:Float
174 | 1006 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:422:Float
175 | 504 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:1383:String
176 | 504 ./benchmark/../lib/mysql2xxxx/xml.rb:23:__varmap__
177 | 503 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:429:Float
178 | 503 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:428:Array
179 | 503 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:427:Float
180 | 503 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:423:Array
181 | 502 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:402:Float
182 | 502 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/date.rb:401:Float
183 | 254 ./benchmark/../lib/mysql2xxxx/xml.rb:28:String
184 | 253 ./benchmark/../lib/mysql2xxxx/xml.rb:24:String
185 | 252 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/rational.rb:337:Array
186 |
--------------------------------------------------------------------------------
/test/fixtures/automobile_make_years.sql:
--------------------------------------------------------------------------------
1 | -- MySQL dump 10.13 Distrib 5.1.41, for debian-linux-gnu (i486)
2 | --
3 | -- Host: 127.0.0.1 Database: data1
4 | -- ------------------------------------------------------
5 | -- Server version 5.1.41-3ubuntu12.8
6 |
7 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
8 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
9 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
10 | /*!40101 SET NAMES utf8 */;
11 | /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
12 | /*!40103 SET TIME_ZONE='+00:00' */;
13 | /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
14 | /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
15 | /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
16 | /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
17 |
18 | --
19 | -- Table structure for table `automobile_make_years`
20 | --
21 |
22 | DROP TABLE IF EXISTS `automobile_make_years`;
23 | /*!40101 SET @saved_cs_client = @@character_set_client */;
24 | /*!40101 SET character_set_client = utf8 */;
25 | CREATE TABLE `automobile_make_years` (
26 | `name` varchar(255) NOT NULL DEFAULT '',
27 | `make_name` varchar(255) DEFAULT NULL,
28 | `year` int(11) DEFAULT NULL,
29 | `fuel_efficiency` float DEFAULT NULL,
30 | `fuel_efficiency_units` varchar(255) DEFAULT NULL,
31 | `volume` int(11) DEFAULT NULL,
32 | PRIMARY KEY (`name`)
33 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
34 | /*!40101 SET character_set_client = @saved_cs_client */;
35 |
36 | --
37 | -- Dumping data for table `automobile_make_years`
38 | --
39 |
40 | LOCK TABLES `automobile_make_years` WRITE;
41 | /*!40000 ALTER TABLE `automobile_make_years` DISABLE KEYS */;
42 | INSERT INTO `automobile_make_years` VALUES (' 2007','',2007,NULL,'kilometres_per_litre',NULL),('Acura 1987','Acura',1987,8.34838,'kilometres_per_litre',NULL),('Acura 1988','Acura',1988,9.36932,'kilometres_per_litre',NULL),('Acura 1989','Acura',1989,9.30246,'kilometres_per_litre',NULL),('Acura 1990','Acura',1990,8.84169,'kilometres_per_litre',NULL),('Acura 1991','Acura',1991,8.70019,'kilometres_per_litre',NULL),('Acura 1992','Acura',1992,8.87257,'kilometres_per_litre',NULL),('Acura 1993','Acura',1993,9.02087,'kilometres_per_litre',NULL),('Acura 1994','Acura',1994,8.94701,'kilometres_per_litre',NULL),('Acura 1995','Acura',1995,8.934,'kilometres_per_litre',NULL),('Acura 1996','Acura',1996,8.63101,'kilometres_per_litre',NULL),('Acura 1997','Acura',1997,9.07166,'kilometres_per_litre',NULL),('Acura 1998','Acura',1998,9.09882,'kilometres_per_litre',NULL),('Acura 1999','Acura',1999,9.18251,'kilometres_per_litre',NULL),('Acura 2000','Acura',2000,9.19998,'kilometres_per_litre',NULL),('Acura 2001','Acura',2001,9.02458,'kilometres_per_litre',NULL),('Acura 2002','Acura',2002,9.15608,'kilometres_per_litre',NULL),('Acura 2003','Acura',2003,9.17192,'kilometres_per_litre',NULL),('Acura 2004','Acura',2004,9.43878,'kilometres_per_litre',NULL),('Acura 2005','Acura',2005,9.39719,'kilometres_per_litre',NULL),('Acura 2006','Acura',2006,9.73614,'kilometres_per_litre',NULL),('Acura 2007','Acura',2007,8.9742,'kilometres_per_litre',NULL),('Acura 2008','Acura',2008,8.9742,'kilometres_per_litre',NULL),('Acura 2009','Acura',2009,8.97793,'kilometres_per_litre',NULL),('Acura 2010','Acura',2010,9.06529,'kilometres_per_litre',NULL),('Alfa Romeo 1985','Alfa Romeo',1985,11.7765,'kilometres_per_litre',2768),('Alfa Romeo 1986','Alfa Romeo',1986,11.8615,'kilometres_per_litre',5766),('Alfa Romeo 1987','Alfa Romeo',1987,8.39089,'kilometres_per_litre',NULL),('Alfa Romeo 1988','Alfa Romeo',1988,8.37409,'kilometres_per_litre',NULL),('Alfa Romeo 1989','Alfa Romeo',1989,8.37409,'kilometres_per_litre',NULL),('Alfa Romeo 1990','Alfa Romeo',1990,10.0813,'kilometres_per_litre',NULL),('Alfa Romeo 1991','Alfa Romeo',1991,8.75751,'kilometres_per_litre',NULL),('Alfa Romeo 1992','Alfa Romeo',1992,8.75751,'kilometres_per_litre',NULL),('Alfa Romeo 1993','Alfa Romeo',1993,8.75751,'kilometres_per_litre',NULL),('Alfa Romeo 1994','Alfa Romeo',1994,8.27945,'kilometres_per_litre',NULL),('Alfa Romeo 1995','Alfa Romeo',1995,7.53643,'kilometres_per_litre',NULL),('Alpina 2003','Alpina',2003,6.77638,'kilometres_per_litre',NULL),('Alpina 2007','Alpina',2007,7.33211,'kilometres_per_litre',NULL),('Alpina 2008','Alpina',2008,7.26053,'kilometres_per_litre',NULL),('American Motors 1985','American Motors',1985,8.5879,'kilometres_per_litre',183044),('American Motors 1986','American Motors',1986,10.2245,'kilometres_per_litre',262535),('American Motors 1987','American Motors',1987,7.11617,'kilometres_per_litre',NULL),('Aston Martin 1985','Aston Martin',1985,4.46401,'kilometres_per_litre',51),('Aston Martin 1988','Aston Martin',1988,3.74863,'kilometres_per_litre',NULL),('Aston Martin 1989','Aston Martin',1989,3.74863,'kilometres_per_litre',NULL),('Aston Martin 1991','Aston Martin',1991,5.46264,'kilometres_per_litre',NULL),('Aston Martin 1992','Aston Martin',1992,5.46264,'kilometres_per_litre',NULL),('Aston Martin 1997','Aston Martin',1997,6.59409,'kilometres_per_litre',NULL),('Aston Martin 1998','Aston Martin',1998,6.58005,'kilometres_per_litre',NULL),('Aston Martin 2000','Aston Martin',2000,5.5484,'kilometres_per_litre',NULL),('Aston Martin 2002','Aston Martin',2002,6.01136,'kilometres_per_litre',NULL),('Aston Martin 2003','Aston Martin',2003,5.55556,'kilometres_per_litre',NULL),('Aston Martin 2004','Aston Martin',2004,5.98942,'kilometres_per_litre',NULL),('Aston Martin 2005','Aston Martin',2005,5.58412,'kilometres_per_litre',NULL),('Aston Martin 2006','Aston Martin',2006,5.67543,'kilometres_per_litre',NULL),('Aston Martin 2007','Aston Martin',2007,7.56756,'kilometres_per_litre',2162),('Aston Martin 2008','Aston Martin',2008,8.07773,'kilometres_per_litre',1370),('Aston Martin 2009','Aston Martin',2009,7.90767,'kilometres_per_litre',1323),('Aston Martin 2010','Aston Martin',2010,6.45193,'kilometres_per_litre',NULL),('Audi 1985','Audi',1985,8.28588,'kilometres_per_litre',NULL),('Audi 1986','Audi',1986,8.35312,'kilometres_per_litre',NULL),('Audi 1987','Audi',1987,8.2502,'kilometres_per_litre',NULL),('Audi 1988','Audi',1988,8.36973,'kilometres_per_litre',NULL),('Audi 1989','Audi',1989,8.37194,'kilometres_per_litre',NULL),('Audi 1990','Audi',1990,8.05018,'kilometres_per_litre',NULL),('Audi 1991','Audi',1991,7.86161,'kilometres_per_litre',NULL),('Audi 1992','Audi',1992,8.02308,'kilometres_per_litre',NULL),('Audi 1993','Audi',1993,8.06636,'kilometres_per_litre',NULL),('Audi 1994','Audi',1994,8.0465,'kilometres_per_litre',NULL),('Audi 1995','Audi',1995,8.25622,'kilometres_per_litre',NULL),('Audi 1996','Audi',1996,8.47191,'kilometres_per_litre',NULL),('Audi 1997','Audi',1997,8.56554,'kilometres_per_litre',NULL),('Audi 1998','Audi',1998,8.79215,'kilometres_per_litre',NULL),('Audi 1999','Audi',1999,8.81491,'kilometres_per_litre',NULL),('Audi 2000','Audi',2000,8.57025,'kilometres_per_litre',NULL),('Audi 2001','Audi',2001,8.49805,'kilometres_per_litre',NULL),('Audi 2002','Audi',2002,8.42285,'kilometres_per_litre',NULL),('Audi 2003','Audi',2003,8.6804,'kilometres_per_litre',NULL),('Audi 2004','Audi',2004,8.58607,'kilometres_per_litre',NULL),('Audi 2005','Audi',2005,8.5634,'kilometres_per_litre',NULL),('Audi 2006','Audi',2006,8.79818,'kilometres_per_litre',NULL),('Audi 2007','Audi',2007,8.54765,'kilometres_per_litre',NULL),('Audi 2008','Audi',2008,8.5454,'kilometres_per_litre',NULL),('Audi 2009','Audi',2009,8.88585,'kilometres_per_litre',NULL),('Audi 2010','Audi',2010,9.10484,'kilometres_per_litre',NULL),('Bentley 1987','Bentley',1987,3.8603,'kilometres_per_litre',NULL),('Bentley 1988','Bentley',1988,4.01405,'kilometres_per_litre',NULL),('Bentley 1989','Bentley',1989,4.31996,'kilometres_per_litre',NULL),('Bentley 1990','Bentley',1990,4.59816,'kilometres_per_litre',NULL),('Bentley 1991','Bentley',1991,4.53696,'kilometres_per_litre',NULL),('Bentley 1992','Bentley',1992,4.96316,'kilometres_per_litre',NULL),('Bentley 1993','Bentley',1993,5.00501,'kilometres_per_litre',NULL),('Bentley 1994','Bentley',1994,4.95574,'kilometres_per_litre',NULL),('Bentley 1995','Bentley',1995,4.92288,'kilometres_per_litre',NULL),('Bentley 1996','Bentley',1996,5.2131,'kilometres_per_litre',NULL),('Bentley 1997','Bentley',1997,5.18952,'kilometres_per_litre',NULL),('Bentley 1998','Bentley',1998,5.17168,'kilometres_per_litre',NULL),('Bentley 1999','Bentley',1999,5.20998,'kilometres_per_litre',NULL),('Bentley 2000','Bentley',2000,5.26035,'kilometres_per_litre',NULL),('Bentley 2001','Bentley',2001,5.23761,'kilometres_per_litre',NULL),('Bentley 2002','Bentley',2002,4.83358,'kilometres_per_litre',NULL),('Bentley 2003','Bentley',2003,5.07012,'kilometres_per_litre',NULL),('Bentley 2004','Bentley',2004,5.0712,'kilometres_per_litre',NULL),('Bentley 2005','Bentley',2005,5.0712,'kilometres_per_litre',NULL),('Bentley 2006','Bentley',2006,5.22575,'kilometres_per_litre',NULL),('Bentley 2007','Bentley',2007,5.36942,'kilometres_per_litre',NULL),('Bentley 2008','Bentley',2008,5.38375,'kilometres_per_litre',NULL),('Bentley 2009','Bentley',2009,5.33494,'kilometres_per_litre',NULL),('Bentley 2010','Bentley',2010,5.5679,'kilometres_per_litre',NULL),('Bertone 1985','Bertone',1985,12.6693,'kilometres_per_litre',1310),('Bertone 1986','Bertone',1986,12.4992,'kilometres_per_litre',2096),('Bertone 1987','Bertone',1987,12.5417,'kilometres_per_litre',1482),('Bertone 1988','Bertone',1988,12.4992,'kilometres_per_litre',209),('Bertone 1989','Bertone',1989,9.70394,'kilometres_per_litre',NULL),('Bitter 1986','Bitter',1986,8.67293,'kilometres_per_litre',3),('Bitter 1987','Bitter',1987,6.83514,'kilometres_per_litre',NULL),('BMW 1985','BMW',1985,11.2238,'kilometres_per_litre',86011),('BMW 1986','BMW',1986,10.9262,'kilometres_per_litre',85053),('BMW 1987','BMW',1987,10.5861,'kilometres_per_litre',93168),('BMW 1988','BMW',1988,9.22562,'kilometres_per_litre',76332),('BMW 1989','BMW',1989,9.43819,'kilometres_per_litre',69412),('BMW 1990','BMW',1990,9.43819,'kilometres_per_litre',56144),('BMW 1991','BMW',1991,9.86333,'kilometres_per_litre',52322),('BMW 1992','BMW',1992,10.2034,'kilometres_per_litre',73650),('BMW 1993','BMW',1993,10.7136,'kilometres_per_litre',64584),('BMW 1994','BMW',1994,10.6711,'kilometres_per_litre',84501),('BMW 1995','BMW',1995,10.7561,'kilometres_per_litre',119423),('BMW 1996','BMW',1996,11.6489,'kilometres_per_litre',57968),('BMW 1997','BMW',1997,10.9262,'kilometres_per_litre',131499),('BMW 1998','BMW',1998,10.7986,'kilometres_per_litre',119927),('BMW 1999','BMW',1999,10.7986,'kilometres_per_litre',113829),('BMW 2000','BMW',2000,10.4501,'kilometres_per_litre',183357),('BMW 2001','BMW',2001,10.1075,'kilometres_per_litre',258068),('BMW 2002','BMW',2002,10.6916,'kilometres_per_litre',237722),('BMW 2003','BMW',2003,10.9339,'kilometres_per_litre',273728),('BMW 2004','BMW',2004,10.7419,'kilometres_per_litre',294840),('BMW 2005','BMW',2005,10.8652,'kilometres_per_litre',234840),('BMW 2006','BMW',2006,11.1425,'kilometres_per_litre',367068),('BMW 2007','BMW',2007,11.4393,'kilometres_per_litre',330061),('BMW 2008','BMW',2008,11.3167,'kilometres_per_litre',353120),('BMW 2009','BMW',2009,11.9192,'kilometres_per_litre',220586),('BMW 2010','BMW',2010,8.35329,'kilometres_per_litre',NULL),('Bugatti 2008','Bugatti',2008,4.30568,'kilometres_per_litre',NULL),('Bugatti 2010','Bugatti',2010,4.30568,'kilometres_per_litre',NULL),('Buick 1985','Buick',1985,9.2567,'kilometres_per_litre',NULL),('Buick 1986','Buick',1986,9.4289,'kilometres_per_litre',NULL),('Buick 1987','Buick',1987,9.42376,'kilometres_per_litre',NULL),('Buick 1988','Buick',1988,9.99394,'kilometres_per_litre',NULL),('Buick 1989','Buick',1989,9.6265,'kilometres_per_litre',NULL),('Buick 1990','Buick',1990,8.99891,'kilometres_per_litre',NULL),('Buick 1991','Buick',1991,8.95796,'kilometres_per_litre',NULL),('Buick 1992','Buick',1992,8.67479,'kilometres_per_litre',NULL),('Buick 1993','Buick',1993,8.91575,'kilometres_per_litre',NULL),('Buick 1994','Buick',1994,9.0409,'kilometres_per_litre',NULL),('Buick 1995','Buick',1995,8.92048,'kilometres_per_litre',NULL),('Buick 1996','Buick',1996,9.17094,'kilometres_per_litre',NULL),('Buick 1997','Buick',1997,9.13288,'kilometres_per_litre',NULL),('Buick 1998','Buick',1998,9.05824,'kilometres_per_litre',NULL),('Buick 1999','Buick',1999,8.88982,'kilometres_per_litre',NULL),('Buick 2000','Buick',2000,9.03072,'kilometres_per_litre',NULL),('Buick 2001','Buick',2001,9.11168,'kilometres_per_litre',NULL),('Buick 2002','Buick',2002,8.82328,'kilometres_per_litre',NULL),('Buick 2003','Buick',2003,8.80555,'kilometres_per_litre',NULL),('Buick 2004','Buick',2004,8.28866,'kilometres_per_litre',NULL),('Buick 2005','Buick',2005,8.26559,'kilometres_per_litre',NULL),('Buick 2006','Buick',2006,8.13605,'kilometres_per_litre',NULL),('Buick 2007','Buick',2007,7.94506,'kilometres_per_litre',NULL),('Buick 2008','Buick',2008,8.54263,'kilometres_per_litre',NULL),('Buick 2009','Buick',2009,8.44072,'kilometres_per_litre',NULL),('Buick 2010','Buick',2010,8.83082,'kilometres_per_litre',NULL),('Cadillac 1985','Cadillac',1985,8.61474,'kilometres_per_litre',NULL),('Cadillac 1986','Cadillac',1986,8.47976,'kilometres_per_litre',NULL),('Cadillac 1987','Cadillac',1987,8.72171,'kilometres_per_litre',NULL),('Cadillac 1988','Cadillac',1988,7.99688,'kilometres_per_litre',NULL),('Cadillac 1989','Cadillac',1989,7.79431,'kilometres_per_litre',NULL),('Cadillac 1990','Cadillac',1990,7.5489,'kilometres_per_litre',NULL),('Cadillac 1991','Cadillac',1991,7.56159,'kilometres_per_litre',NULL),('Cadillac 1992','Cadillac',1992,7.59681,'kilometres_per_litre',NULL),('Cadillac 1993','Cadillac',1993,7.63888,'kilometres_per_litre',NULL),('Cadillac 1994','Cadillac',1994,7.88412,'kilometres_per_litre',NULL),('Cadillac 1995','Cadillac',1995,7.84023,'kilometres_per_litre',NULL),('Cadillac 1996','Cadillac',1996,8.15049,'kilometres_per_litre',NULL),('Cadillac 1997','Cadillac',1997,8.17456,'kilometres_per_litre',NULL),('Cadillac 1998','Cadillac',1998,7.61951,'kilometres_per_litre',NULL),('Cadillac 1999','Cadillac',1999,7.77513,'kilometres_per_litre',NULL),('Cadillac 2000','Cadillac',2000,7.79294,'kilometres_per_litre',NULL),('Cadillac 2001','Cadillac',2001,8.22146,'kilometres_per_litre',NULL),('Cadillac 2002','Cadillac',2002,6.97644,'kilometres_per_litre',NULL),('Cadillac 2003','Cadillac',2003,7.00719,'kilometres_per_litre',NULL),('Cadillac 2004','Cadillac',2004,7.40747,'kilometres_per_litre',NULL),('Cadillac 2005','Cadillac',2005,7.3177,'kilometres_per_litre',NULL),('Cadillac 2006','Cadillac',2006,7.36042,'kilometres_per_litre',NULL),('Cadillac 2007','Cadillac',2007,7.54844,'kilometres_per_litre',NULL),('Cadillac 2008','Cadillac',2008,7.77944,'kilometres_per_litre',NULL),('Cadillac 2009','Cadillac',2009,7.54509,'kilometres_per_litre',NULL),('Cadillac 2010','Cadillac',2010,8.34744,'kilometres_per_litre',NULL),('Chevrolet 1985','Chevrolet',1985,8.33828,'kilometres_per_litre',NULL),('Chevrolet 1986','Chevrolet',1986,8.07426,'kilometres_per_litre',NULL),('Chevrolet 1987','Chevrolet',1987,8.13302,'kilometres_per_litre',NULL),('Chevrolet 1988','Chevrolet',1988,8.09103,'kilometres_per_litre',NULL),('Chevrolet 1989','Chevrolet',1989,7.69617,'kilometres_per_litre',NULL),('Chevrolet 1990','Chevrolet',1990,7.63296,'kilometres_per_litre',NULL),('Chevrolet 1991','Chevrolet',1991,7.59696,'kilometres_per_litre',NULL),('Chevrolet 1992','Chevrolet',1992,7.62239,'kilometres_per_litre',NULL),('Chevrolet 1993','Chevrolet',1993,7.43941,'kilometres_per_litre',NULL),('Chevrolet 1994','Chevrolet',1994,7.55822,'kilometres_per_litre',NULL),('Chevrolet 1995','Chevrolet',1995,7.28468,'kilometres_per_litre',NULL),('Chevrolet 1996','Chevrolet',1996,7.71837,'kilometres_per_litre',NULL),('Chevrolet 1997','Chevrolet',1997,7.52895,'kilometres_per_litre',NULL),('Chevrolet 1998','Chevrolet',1998,8.16838,'kilometres_per_litre',NULL),('Chevrolet 1999','Chevrolet',1999,8.2729,'kilometres_per_litre',NULL),('Chevrolet 2000','Chevrolet',2000,8.34193,'kilometres_per_litre',NULL),('Chevrolet 2001','Chevrolet',2001,8.1575,'kilometres_per_litre',NULL),('Chevrolet 2002','Chevrolet',2002,7.86773,'kilometres_per_litre',NULL),('Chevrolet 2003','Chevrolet',2003,6.95567,'kilometres_per_litre',NULL),('Chevrolet 2004','Chevrolet',2004,7.2689,'kilometres_per_litre',NULL),('Chevrolet 2005','Chevrolet',2005,7.61449,'kilometres_per_litre',NULL),('Chevrolet 2006','Chevrolet',2006,7.79201,'kilometres_per_litre',NULL),('Chevrolet 2007','Chevrolet',2007,7.68122,'kilometres_per_litre',NULL),('Chevrolet 2008','Chevrolet',2008,7.91521,'kilometres_per_litre',NULL),('Chevrolet 2009','Chevrolet',2009,7.83341,'kilometres_per_litre',NULL),('Chevrolet 2010','Chevrolet',2010,9.17611,'kilometres_per_litre',NULL),('Chrysler 1985','Chrysler',1985,10.8997,'kilometres_per_litre',1751347),('Chrysler 1986','Chrysler',1986,11.1244,'kilometres_per_litre',1584253),('Chrysler 1987','Chrysler',1987,10.7695,'kilometres_per_litre',2261204),('Chrysler 1988','Chrysler',1988,10.784,'kilometres_per_litre',2108091),('Chrysler 1989','Chrysler',1989,10.5302,'kilometres_per_litre',2046618),('Chrysler 1990','Chrysler',1990,10.3789,'kilometres_per_litre',1648822),('Chrysler 1991','Chrysler',1991,10.4916,'kilometres_per_litre',1428274),('Chrysler 1992','Chrysler',1992,10.2858,'kilometres_per_litre',1475112),('Chrysler 1993','Chrysler',1993,10.2536,'kilometres_per_litre',1871867),('Chrysler 1994','Chrysler',1994,9.63882,'kilometres_per_litre',2028421),('Chrysler 1995','Chrysler',1995,10.0877,'kilometres_per_litre',2190126),('Chrysler 1996','Chrysler',1996,9.64974,'kilometres_per_litre',2335648),('Chrysler 1997','Chrysler',1997,9.65624,'kilometres_per_litre',2232308),('Chrysler 1998','Chrysler',1998,9.74803,'kilometres_per_litre',2264822),('Chrysler 1999','Chrysler',1999,8.77064,'kilometres_per_litre',NULL),('Chrysler 2000','Chrysler',2000,8.49237,'kilometres_per_litre',NULL),('Chrysler 2001','Chrysler',2001,8.8204,'kilometres_per_litre',NULL),('Chrysler 2002','Chrysler',2002,8.85187,'kilometres_per_litre',NULL),('Chrysler 2003','Chrysler',2003,8.84497,'kilometres_per_litre',NULL),('Chrysler 2004','Chrysler',2004,8.78649,'kilometres_per_litre',NULL),('Chrysler 2005','Chrysler',2005,8.73979,'kilometres_per_litre',NULL),('Chrysler 2006','Chrysler',2006,8.56691,'kilometres_per_litre',NULL),('Chrysler 2007','Chrysler',2007,8.18966,'kilometres_per_litre',NULL),('Chrysler 2008','Chrysler',2008,10.7989,'kilometres_per_litre',1657204),('Chrysler 2009','Chrysler',2009,10.6423,'kilometres_per_litre',815650),('Chrysler 2010','Chrysler',2010,9.05966,'kilometres_per_litre',NULL),('Citroën 1987','Citroën',1987,9.31065,'kilometres_per_litre',85),('Citroën 1988','Citroën',1988,9.60825,'kilometres_per_litre',22),('Citroën 1989','Citroën',1989,8.84299,'kilometres_per_litre',15),('Citroën INC 1991','Citroën INC',1991,7.15028,'kilometres_per_litre',NULL),('Citroën INC 1992','Citroën INC',1992,6.86501,'kilometres_per_litre',NULL),('Citroën INC 1993','Citroën INC',1993,6.70222,'kilometres_per_litre',NULL),('Daewoo 1998','Daewoo',1998,12.1591,'kilometres_per_litre',408),('Daewoo 1999','Daewoo',1999,12.2867,'kilometres_per_litre',32081),('Daewoo 2000','Daewoo',2000,12.1591,'kilometres_per_litre',75560),('Daewoo 2001','Daewoo',2001,12.1591,'kilometres_per_litre',55188),('Daewoo 2002','Daewoo',2002,11.9891,'kilometres_per_litre',17396),('Daewoo 2003','Daewoo',2003,12.3717,'kilometres_per_litre',1729),('Daewoo 2004','Daewoo',2004,10.395,'kilometres_per_litre',NULL),('Daihatsu 1988','Daihatsu',1988,19.8967,'kilometres_per_litre',13522),('Daihatsu 1989','Daihatsu',1989,18.7488,'kilometres_per_litre',15812),('Daihatsu 1990','Daihatsu',1990,15.2384,'kilometres_per_litre',19961),('Daihatsu 1991','Daihatsu',1991,16.1553,'kilometres_per_litre',5615),('Daihatsu 1992','Daihatsu',1992,16.5334,'kilometres_per_litre',21800),('Dodge 1985','Dodge',1985,7.63126,'kilometres_per_litre',NULL),('Dodge 1986','Dodge',1986,7.4599,'kilometres_per_litre',NULL),('Dodge 1987','Dodge',1987,7.26791,'kilometres_per_litre',NULL),('Dodge 1988','Dodge',1988,7.47413,'kilometres_per_litre',NULL),('Dodge 1989','Dodge',1989,7.50306,'kilometres_per_litre',NULL),('Dodge 1990','Dodge',1990,7.22025,'kilometres_per_litre',NULL),('Dodge 1991','Dodge',1991,7.03649,'kilometres_per_litre',NULL),('Dodge 1992','Dodge',1992,7.21148,'kilometres_per_litre',NULL),('Dodge 1993','Dodge',1993,7.43348,'kilometres_per_litre',NULL),('Dodge 1994','Dodge',1994,7.37717,'kilometres_per_litre',NULL),('Dodge 1995','Dodge',1995,7.28366,'kilometres_per_litre',NULL),('Dodge 1996','Dodge',1996,7.16012,'kilometres_per_litre',NULL),('Dodge 1997','Dodge',1997,7.45935,'kilometres_per_litre',NULL),('Dodge 1998','Dodge',1998,7.36383,'kilometres_per_litre',NULL),('Dodge 1999','Dodge',1999,7.27243,'kilometres_per_litre',NULL),('Dodge 2000','Dodge',2000,7.14758,'kilometres_per_litre',NULL),('Dodge 2001','Dodge',2001,7.08896,'kilometres_per_litre',NULL),('Dodge 2002','Dodge',2002,7.23758,'kilometres_per_litre',NULL),('Dodge 2003','Dodge',2003,7.50219,'kilometres_per_litre',NULL),('Dodge 2004','Dodge',2004,7.51659,'kilometres_per_litre',NULL),('Dodge 2005','Dodge',2005,7.81003,'kilometres_per_litre',NULL),('Dodge 2006','Dodge',2006,6.88488,'kilometres_per_litre',NULL),('Dodge 2007','Dodge',2007,7.54123,'kilometres_per_litre',NULL),('Dodge 2008','Dodge',2008,7.38447,'kilometres_per_litre',NULL),('Dodge 2009','Dodge',2009,7.66087,'kilometres_per_litre',NULL),('Dodge 2010','Dodge',2010,8.25568,'kilometres_per_litre',NULL),('Eagle 1988','Eagle',1988,9.32774,'kilometres_per_litre',NULL),('Eagle 1989','Eagle',1989,10.0274,'kilometres_per_litre',NULL),('Eagle 1990','Eagle',1990,9.74456,'kilometres_per_litre',NULL),('Eagle 1991','Eagle',1991,9.8891,'kilometres_per_litre',NULL),('Eagle 1992','Eagle',1992,9.51933,'kilometres_per_litre',NULL),('Eagle 1993','Eagle',1993,9.69686,'kilometres_per_litre',NULL),('Eagle 1994','Eagle',1994,9.74139,'kilometres_per_litre',NULL),('Eagle 1995','Eagle',1995,9.87875,'kilometres_per_litre',NULL),('Eagle 1996','Eagle',1996,9.72937,'kilometres_per_litre',NULL),('Eagle 1997','Eagle',1997,9.1861,'kilometres_per_litre',NULL),('Eagle 1998','Eagle',1998,9.70861,'kilometres_per_litre',NULL),('Excalibur 1987','Excalibur',1987,6.12608,'kilometres_per_litre',NULL),('Ferrari 1985','Ferrari',1985,6.07956,'kilometres_per_litre',913),('Ferrari 1986','Ferrari',1986,6.84481,'kilometres_per_litre',1052),('Ferrari 1987','Ferrari',1987,5.62165,'kilometres_per_litre',NULL),('Ferrari 1988','Ferrari',1988,5.62165,'kilometres_per_litre',NULL),('Ferrari 1989','Ferrari',1989,5.81004,'kilometres_per_litre',NULL),('Ferrari 1990','Ferrari',1990,5.6063,'kilometres_per_litre',NULL),('Ferrari 1991','Ferrari',1991,5.55266,'kilometres_per_litre',NULL),('Ferrari 1992','Ferrari',1992,5.62696,'kilometres_per_litre',NULL),('Ferrari 1993','Ferrari',1993,5.63745,'kilometres_per_litre',NULL),('Ferrari 1994','Ferrari',1994,5.69393,'kilometres_per_litre',NULL),('Ferrari 1995','Ferrari',1995,4.8782,'kilometres_per_litre',NULL),('Ferrari 1996','Ferrari',1996,4.90302,'kilometres_per_litre',NULL),('Ferrari 1997','Ferrari',1997,4.82204,'kilometres_per_litre',NULL),('Ferrari 1998','Ferrari',1998,4.75935,'kilometres_per_litre',NULL),('Ferrari 1999','Ferrari',1999,4.73513,'kilometres_per_litre',NULL),('Ferrari 2000','Ferrari',2000,4.8159,'kilometres_per_litre',NULL),('Ferrari 2001','Ferrari',2001,4.8159,'kilometres_per_litre',NULL),('Ferrari 2002','Ferrari',2002,4.97779,'kilometres_per_litre',NULL),('Ferrari 2003','Ferrari',2003,4.81454,'kilometres_per_litre',NULL),('Ferrari 2004','Ferrari',2004,5.07132,'kilometres_per_litre',NULL),('Ferrari 2005','Ferrari',2005,5.09791,'kilometres_per_litre',NULL),('Ferrari 2006','Ferrari',2006,7.01487,'kilometres_per_litre',1392),('Ferrari 2007','Ferrari',2007,6.88733,'kilometres_per_litre',1812),('Ferrari 2008','Ferrari',2008,6.97236,'kilometres_per_litre',1450),('Ferrari 2009','Ferrari',2009,5.49367,'kilometres_per_litre',NULL),('Ferrari 2010','Ferrari',2010,5.59942,'kilometres_per_litre',NULL),('Ford 1985','Ford',1985,10.8705,'kilometres_per_litre',2387443),('Ford 1986','Ford',1986,10.4252,'kilometres_per_litre',3259855),('Ford 1987','Ford',1987,10.4692,'kilometres_per_litre',2930579),('Ford 1988','Ford',1988,10.657,'kilometres_per_litre',3603190),('Ford 1989','Ford',1989,10.6113,'kilometres_per_litre',3514551),('Ford 1990','Ford',1990,10.2903,'kilometres_per_litre',2713195),('Ford 1991','Ford',1991,11.1428,'kilometres_per_litre',2170282),('Ford 1992','Ford',1992,10.2669,'kilometres_per_litre',2808976),('Ford 1993','Ford',1993,10.6887,'kilometres_per_litre',3645890),('Ford 1994','Ford',1994,10.3364,'kilometres_per_litre',3471426),('Ford 1995','Ford',1995,10.5112,'kilometres_per_litre',3601874),('Ford 1996','Ford',1996,10.091,'kilometres_per_litre',2960025),('Ford 1997','Ford',1997,10.0991,'kilometres_per_litre',3818375),('Ford 1998','Ford',1998,10.0665,'kilometres_per_litre',3819908),('Ford 1999','Ford',1999,10.2692,'kilometres_per_litre',3862947),('Ford 2000','Ford',2000,10.4324,'kilometres_per_litre',3864445),('Ford 2001','Ford',2001,10.0382,'kilometres_per_litre',3538256),('Ford 2002','Ford',2002,10.0817,'kilometres_per_litre',3530562),('Ford 2003','Ford',2003,10.2062,'kilometres_per_litre',3300315),('Ford 2004','Ford',2004,9.8537,'kilometres_per_litre',2927582),('Ford 2005','Ford',2005,10.4303,'kilometres_per_litre',2880931),('Ford 2006','Ford',2006,10.3829,'kilometres_per_litre',2565281),('Ford 2007','Ford',2007,10.9184,'kilometres_per_litre',2379757),('Ford 2008','Ford',2008,11.2233,'kilometres_per_litre',2169033),('Ford 2009','Ford',2009,11.6885,'kilometres_per_litre',1037325),('Ford 2010','Ford',2010,8.85396,'kilometres_per_litre',NULL),('Geo 1989','Geo',1989,13.1929,'kilometres_per_litre',NULL),('Geo 1990','Geo',1990,12.4666,'kilometres_per_litre',NULL),('Geo 1991','Geo',1991,12.3425,'kilometres_per_litre',NULL),('Geo 1992','Geo',1992,12.1521,'kilometres_per_litre',NULL),('Geo 1993','Geo',1993,12.2887,'kilometres_per_litre',NULL),('Geo 1994','Geo',1994,10.9898,'kilometres_per_litre',NULL),('Geo 1995','Geo',1995,12.928,'kilometres_per_litre',NULL),('Geo 1996','Geo',1996,11.0054,'kilometres_per_litre',NULL),('Geo 1997','Geo',1997,11.0224,'kilometres_per_litre',NULL),('GM 2003','GM',2003,10.4737,'kilometres_per_litre',4369888),('GM 2004','GM',2004,10.6376,'kilometres_per_litre',4321071),('GMC 1985','GMC',1985,7.42532,'kilometres_per_litre',NULL),('GMC 1986','GMC',1986,7.09471,'kilometres_per_litre',NULL),('GMC 1987','GMC',1987,7.08494,'kilometres_per_litre',NULL),('GMC 1988','GMC',1988,7.07749,'kilometres_per_litre',NULL),('GMC 1989','GMC',1989,6.87026,'kilometres_per_litre',NULL),('GMC 1990','GMC',1990,6.73911,'kilometres_per_litre',NULL),('GMC 1991','GMC',1991,6.8461,'kilometres_per_litre',NULL),('GMC 1992','GMC',1992,6.87868,'kilometres_per_litre',NULL),('GMC 1993','GMC',1993,6.72375,'kilometres_per_litre',NULL),('GMC 1994','GMC',1994,6.81862,'kilometres_per_litre',NULL),('GMC 1995','GMC',1995,6.71649,'kilometres_per_litre',NULL),('GMC 1996','GMC',1996,6.89786,'kilometres_per_litre',NULL),('GMC 1997','GMC',1997,6.89306,'kilometres_per_litre',NULL),('GMC 1998','GMC',1998,6.78585,'kilometres_per_litre',NULL),('GMC 1999','GMC',1999,6.80262,'kilometres_per_litre',NULL),('GMC 2000','GMC',2000,6.8981,'kilometres_per_litre',NULL),('GMC 2001','GMC',2001,6.62531,'kilometres_per_litre',NULL),('GMC 2002','GMC',2002,6.56039,'kilometres_per_litre',NULL),('GMC 2003','GMC',2003,6.31627,'kilometres_per_litre',NULL),('GMC 2004','GMC',2004,6.64601,'kilometres_per_litre',NULL),('GMC 2005','GMC',2005,6.75257,'kilometres_per_litre',NULL),('GMC 2006','GMC',2006,6.90722,'kilometres_per_litre',NULL),('GMC 2007','GMC',2007,6.68136,'kilometres_per_litre',NULL),('GMC 2008','GMC',2008,6.76103,'kilometres_per_litre',NULL),('GMC 2009','GMC',2009,6.76009,'kilometres_per_litre',NULL),('GMC 2010','GMC',2010,7.80003,'kilometres_per_litre',NULL),('Honda 1985','Honda',1985,14.6675,'kilometres_per_litre',541872),('Honda 1986','Honda',1986,14.1573,'kilometres_per_litre',629534),('Honda 1987','Honda',1987,14.1148,'kilometres_per_litre',764400),('Honda 1988','Honda',1988,13.6471,'kilometres_per_litre',848142),('Honda 1989','Honda',1989,13.4345,'kilometres_per_litre',754499),('Honda 1990','Honda',1990,13.0944,'kilometres_per_litre',894186),('Honda 1991','Honda',1991,13.0519,'kilometres_per_litre',882466),('Honda 1992','Honda',1992,13.307,'kilometres_per_litre',766617),('Honda 1993','Honda',1993,13.8172,'kilometres_per_litre',691903),('Honda 1994','Honda',1994,13.7747,'kilometres_per_litre',779072),('Honda 1995','Honda',1995,13.9022,'kilometres_per_litre',795598),('Honda 1996','Honda',1996,13.6692,'kilometres_per_litre',749883),('Honda 1997','Honda',1997,13.5147,'kilometres_per_litre',951812),('Honda 1998','Honda',1998,13.4633,'kilometres_per_litre',995594),('Honda 1999','Honda',1999,12.9161,'kilometres_per_litre',919140),('Honda 2000','Honda',2000,12.7674,'kilometres_per_litre',1143467),('Honda 2001','Honda',2001,13.0313,'kilometres_per_litre',1118325),('Honda 2002','Honda',2002,12.8928,'kilometres_per_litre',1223268),('Honda 2003','Honda',2003,12.6484,'kilometres_per_litre',1436382),('Honda 2004','Honda',2004,12.6281,'kilometres_per_litre',1364891),('Honda 2005','Honda',2005,12.6871,'kilometres_per_litre',1390671),('Honda 2006','Honda',2006,12.6611,'kilometres_per_litre',1479090),('Honda 2007','Honda',2007,12.8618,'kilometres_per_litre',1629113),('Honda 2008','Honda',2008,13.1671,'kilometres_per_litre',1512921),('Honda 2009','Honda',2009,13.6251,'kilometres_per_litre',1149040),('Honda 2010','Honda',2010,11.4946,'kilometres_per_litre',NULL),('Hummer 2006','Hummer',2006,6.87405,'kilometres_per_litre',NULL),('Hummer 2007','Hummer',2007,6.69369,'kilometres_per_litre',NULL),('Hummer 2008','Hummer',2008,6.40878,'kilometres_per_litre',NULL),('Hummer 2009','Hummer',2009,6.66905,'kilometres_per_litre',NULL),('Hummer 2010','Hummer',2010,6.63513,'kilometres_per_litre',NULL),('Hyundai 1986','Hyundai',1986,14.9225,'kilometres_per_litre',127183),('Hyundai 1987','Hyundai',1987,14.795,'kilometres_per_litre',231537),('Hyundai 1988','Hyundai',1988,14.6675,'kilometres_per_litre',296987),('Hyundai 1989','Hyundai',1989,14.1998,'kilometres_per_litre',216667),('Hyundai 1990','Hyundai',1990,14.1573,'kilometres_per_litre',116629),('Hyundai 1991','Hyundai',1991,13.9872,'kilometres_per_litre',133747),('Hyundai 1992','Hyundai',1992,13.307,'kilometres_per_litre',105082),('Hyundai 1993','Hyundai',1993,13.307,'kilometres_per_litre',105630),('Hyundai 1994','Hyundai',1994,14.0297,'kilometres_per_litre',112287),('Hyundai 1995','Hyundai',1995,13.2645,'kilometres_per_litre',142756),('Hyundai 1996','Hyundai',1996,14.0297,'kilometres_per_litre',84425),('Hyundai 1997','Hyundai',1997,13.3495,'kilometres_per_litre',104019),('Hyundai 1998','Hyundai',1998,13.1369,'kilometres_per_litre',90334),('Hyundai 1999','Hyundai',1999,13.0944,'kilometres_per_litre',129921),('Hyundai 2000','Hyundai',2000,12.9244,'kilometres_per_litre',251372),('Hyundai 2001','Hyundai',2001,12.8854,'kilometres_per_litre',324593),('Hyundai 2002','Hyundai',2002,12.6639,'kilometres_per_litre',392834),('Hyundai 2003','Hyundai',2003,12.3072,'kilometres_per_litre',407211),('Hyundai 2004','Hyundai',2004,11.8784,'kilometres_per_litre',424048),('Hyundai 2005','Hyundai',2005,12.2111,'kilometres_per_litre',433921),('Hyundai 2006','Hyundai',2006,12.3637,'kilometres_per_litre',424246),('Hyundai 2007','Hyundai',2007,12.674,'kilometres_per_litre',454629),('Hyundai 2008','Hyundai',2008,13.4653,'kilometres_per_litre',382810),('Hyundai 2009','Hyundai',2009,13.7263,'kilometres_per_litre',411764),('Hyundai 2010','Hyundai',2010,10.5426,'kilometres_per_litre',NULL),('Impco 2000','Impco',2000,9.25982,'kilometres_per_litre',NULL),('Impco 2001','Impco',2001,9.6659,'kilometres_per_litre',NULL),('Infiniti 1990','Infiniti',1990,7.90012,'kilometres_per_litre',NULL),('Infiniti 1991','Infiniti',1991,8.50589,'kilometres_per_litre',NULL),('Infiniti 1992','Infiniti',1992,8.50589,'kilometres_per_litre',NULL),('Infiniti 1993','Infiniti',1993,8.45488,'kilometres_per_litre',NULL),('Infiniti 1994','Infiniti',1994,8.51049,'kilometres_per_litre',NULL),('Infiniti 1995','Infiniti',1995,8.95022,'kilometres_per_litre',NULL),('Infiniti 1996','Infiniti',1996,9.04016,'kilometres_per_litre',NULL),('Infiniti 1997','Infiniti',1997,8.22048,'kilometres_per_litre',NULL),('Infiniti 1998','Infiniti',1998,8.22861,'kilometres_per_litre',NULL),('Infiniti 1999','Infiniti',1999,8.77456,'kilometres_per_litre',NULL),('Infiniti 2000','Infiniti',2000,8.80093,'kilometres_per_litre',NULL),('Infiniti 2001','Infiniti',2001,8.41681,'kilometres_per_litre',NULL),('Infiniti 2002','Infiniti',2002,8.44897,'kilometres_per_litre',NULL),('Infiniti 2003','Infiniti',2003,7.80294,'kilometres_per_litre',NULL),('Infiniti 2004','Infiniti',2004,7.75716,'kilometres_per_litre',NULL),('Infiniti 2005','Infiniti',2005,7.5388,'kilometres_per_litre',NULL),('Infiniti 2006','Infiniti',2006,7.73698,'kilometres_per_litre',NULL),('Infiniti 2007','Infiniti',2007,7.73953,'kilometres_per_litre',NULL),('Infiniti 2008','Infiniti',2008,7.8625,'kilometres_per_litre',NULL),('Infiniti 2009','Infiniti',2009,7.48971,'kilometres_per_litre',NULL),('Infiniti 2010','Infiniti',2010,8.23258,'kilometres_per_litre',NULL),('Isuzu 1985','Isuzu',1985,13.1338,'kilometres_per_litre',47264),('Isuzu 1986','Isuzu',1986,11.7843,'kilometres_per_litre',122585),('Isuzu 1987','Isuzu',1987,12.6756,'kilometres_per_litre',65203),('Isuzu 1988','Isuzu',1988,10.6191,'kilometres_per_litre',101038),('Isuzu 1989','Isuzu',1989,10.1094,'kilometres_per_litre',76850),('Isuzu 1990','Isuzu',1990,8.85583,'kilometres_per_litre',53919),('Isuzu 1991','Isuzu',1991,9.91997,'kilometres_per_litre',72954),('Isuzu 1992','Isuzu',1992,9.16844,'kilometres_per_litre',122369),('Isuzu 1993','Isuzu',1993,9.36132,'kilometres_per_litre',91572),('Isuzu 1994','Isuzu',1994,8.75796,'kilometres_per_litre',144823),('Isuzu 1995','Isuzu',1995,8.63042,'kilometres_per_litre',167721),('Isuzu 1996','Isuzu',1996,8.24779,'kilometres_per_litre',90578),('Isuzu 1997','Isuzu',1997,8.33282,'kilometres_per_litre',86249),('Isuzu 1998','Isuzu',1998,9.09807,'kilometres_per_litre',123824),('Isuzu 1999','Isuzu',1999,8.97053,'kilometres_per_litre',138446),('Isuzu 2000','Isuzu',2000,8.8855,'kilometres_per_litre',102218),('Isuzu 2001','Isuzu',2001,8.97053,'kilometres_per_litre',100127),('Isuzu 2002','Isuzu',2002,8.92802,'kilometres_per_litre',78913),('Isuzu 2003','Isuzu',2003,9.4807,'kilometres_per_litre',17473),('Isuzu 2004','Isuzu',2004,9.82082,'kilometres_per_litre',20210),('Isuzu 2005','Isuzu',2005,6.80693,'kilometres_per_litre',NULL),('Isuzu 2006','Isuzu',2006,7.427,'kilometres_per_litre',NULL),('Isuzu 2007','Isuzu',2007,7.65523,'kilometres_per_litre',NULL),('Isuzu 2008','Isuzu',2008,7.92102,'kilometres_per_litre',NULL),('Isuzu 2009','Isuzu',2009,7.11998,'kilometres_per_litre',NULL),('Jaguar 1985','Jaguar',1985,8.20527,'kilometres_per_litre',21461),('Jaguar 1986','Jaguar',1986,8.07773,'kilometres_per_litre',22973),('Jaguar 1987','Jaguar',1987,8.20527,'kilometres_per_litre',15881),('Jaguar 1988','Jaguar',1988,9.39568,'kilometres_per_litre',28626),('Jaguar 1989','Jaguar',1989,8.84299,'kilometres_per_litre',22147),('Jaguar 1990','Jaguar',1990,6.53392,'kilometres_per_litre',NULL),('Jaguar 1991','Jaguar',1991,6.53392,'kilometres_per_litre',NULL),('Jaguar 1992','Jaguar',1992,6.49024,'kilometres_per_litre',NULL),('Jaguar 1993','Jaguar',1993,6.81662,'kilometres_per_litre',NULL),('Jaguar 1994','Jaguar',1994,6.87089,'kilometres_per_litre',NULL),('Jaguar 1995','Jaguar',1995,6.06939,'kilometres_per_litre',NULL),('Jaguar 1996','Jaguar',1996,7.04892,'kilometres_per_litre',NULL),('Jaguar 1997','Jaguar',1997,7.80257,'kilometres_per_litre',NULL),('Jaguar 1998','Jaguar',1998,7.79401,'kilometres_per_litre',NULL),('Jaguar 1999','Jaguar',1999,7.67416,'kilometres_per_litre',NULL),('Jaguar 2000','Jaguar',2000,7.69566,'kilometres_per_litre',NULL),('Jaguar 2001','Jaguar',2001,7.76456,'kilometres_per_litre',NULL),('Jaguar 2002','Jaguar',2002,7.96431,'kilometres_per_litre',NULL),('Jaguar 2003','Jaguar',2003,8.03954,'kilometres_per_litre',NULL),('Jaguar 2004','Jaguar',2004,8.23265,'kilometres_per_litre',NULL),('Jaguar 2005','Jaguar',2005,8.35073,'kilometres_per_litre',NULL),('Jaguar 2006','Jaguar',2006,8.21964,'kilometres_per_litre',NULL),('Jaguar 2007','Jaguar',2007,8.25151,'kilometres_per_litre',NULL),('Jaguar 2008','Jaguar',2008,8.54952,'kilometres_per_litre',65180),('Jaguar 2009','Jaguar',2009,9.11279,'kilometres_per_litre',30042),('Jaguar 2010','Jaguar',2010,8.03934,'kilometres_per_litre',NULL),('Jeep 1985','Jeep',1985,7.38024,'kilometres_per_litre',NULL),('Jeep 1986','Jeep',1986,7.87956,'kilometres_per_litre',NULL),('Jeep 1987','Jeep',1987,7.70806,'kilometres_per_litre',NULL),('Jeep 1988','Jeep',1988,7.55542,'kilometres_per_litre',NULL),('Jeep 1989','Jeep',1989,7.70445,'kilometres_per_litre',NULL),('Jeep 1990','Jeep',1990,7.75035,'kilometres_per_litre',NULL),('Jeep 1991','Jeep',1991,7.24607,'kilometres_per_litre',NULL),('Jeep 1992','Jeep',1992,7.52014,'kilometres_per_litre',NULL),('Jeep 1993','Jeep',1993,7.26037,'kilometres_per_litre',NULL),('Jeep 1994','Jeep',1994,6.99774,'kilometres_per_litre',NULL),('Jeep 1995','Jeep',1995,6.93179,'kilometres_per_litre',NULL),('Jeep 1996','Jeep',1996,7.25326,'kilometres_per_litre',NULL),('Jeep 1997','Jeep',1997,6.4817,'kilometres_per_litre',NULL),('Jeep 1998','Jeep',1998,7.03122,'kilometres_per_litre',NULL),('Jeep 1999','Jeep',1999,7.26137,'kilometres_per_litre',NULL),('Jeep 2000','Jeep',2000,7.28694,'kilometres_per_litre',NULL),('Jeep 2001','Jeep',2001,7.00871,'kilometres_per_litre',NULL),('Jeep 2002','Jeep',2002,6.74418,'kilometres_per_litre',NULL),('Jeep 2003','Jeep',2003,7.43358,'kilometres_per_litre',NULL),('Jeep 2004','Jeep',2004,7.4629,'kilometres_per_litre',NULL),('Jeep 2005','Jeep',2005,7.40238,'kilometres_per_litre',NULL),('Jeep 2006','Jeep',2006,7.04206,'kilometres_per_litre',NULL),('Jeep 2007','Jeep',2007,7.58817,'kilometres_per_litre',NULL),('Jeep 2008','Jeep',2008,7.82547,'kilometres_per_litre',NULL),('Jeep 2009','Jeep',2009,7.69807,'kilometres_per_litre',NULL),('Jeep 2010','Jeep',2010,8.72099,'kilometres_per_litre',NULL),('Kia 1994','Kia',1994,14.0723,'kilometres_per_litre',11294),('Kia 1995','Kia',1995,12.279,'kilometres_per_litre',30723),('Kia 1996','Kia',1996,11.7529,'kilometres_per_litre',35686),('Kia 1997','Kia',1997,12.0779,'kilometres_per_litre',66209),('Kia 1998','Kia',1998,12.126,'kilometres_per_litre',72315),('Kia 1999','Kia',1999,12.0287,'kilometres_per_litre',95331),('Kia 2000','Kia',2000,11.6572,'kilometres_per_litre',167546),('Kia 2001','Kia',2001,12.1059,'kilometres_per_litre',214537),('Kia 2002','Kia',2002,11.281,'kilometres_per_litre',253336),('Kia 2003','Kia',2003,11.0827,'kilometres_per_litre',233061),('Kia 2004','Kia',2004,11.0011,'kilometres_per_litre',268225),('Kia 2005','Kia',2005,10.6749,'kilometres_per_litre',291725),('Kia 2006','Kia',2006,11.9317,'kilometres_per_litre',317658),('Kia 2007','Kia',2007,12.4264,'kilometres_per_litre',304770),('Kia 2008','Kia',2008,12.6242,'kilometres_per_litre',289669),('Kia 2009','Kia',2009,13.4708,'kilometres_per_litre',237171),('Kia 2010','Kia',2010,10.4752,'kilometres_per_litre',NULL),('Laforza 1989','Laforza',1989,4.87946,'kilometres_per_litre',NULL),('Laforza 1990','Laforza',1990,4.87946,'kilometres_per_litre',NULL),('Lamborghini 1986','Lamborghini',1986,3.74126,'kilometres_per_litre',47),('Lamborghini 1987','Lamborghini',1987,3.17876,'kilometres_per_litre',NULL),('Lamborghini 1988','Lamborghini',1988,3.17876,'kilometres_per_litre',NULL),('Lamborghini 1989','Lamborghini',1989,3.17876,'kilometres_per_litre',NULL),('Lamborghini 1990','Lamborghini',1990,3.81318,'kilometres_per_litre',NULL),('Lamborghini 1991','Lamborghini',1991,4.4476,'kilometres_per_litre',NULL),('Lamborghini 1992','Lamborghini',1992,4.4476,'kilometres_per_litre',NULL),('Lamborghini 1993','Lamborghini',1993,4.4476,'kilometres_per_litre',NULL),('Lamborghini 1995','Lamborghini',1995,5.48435,'kilometres_per_litre',45),('Lamborghini 1996','Lamborghini',1996,5.35681,'kilometres_per_litre',32),('Lamborghini 1997','Lamborghini',1997,5.44184,'kilometres_per_litre',74),('Lamborghini 1998','Lamborghini',1998,4.56537,'kilometres_per_litre',NULL),('Lamborghini 1999','Lamborghini',1999,4.56537,'kilometres_per_litre',NULL),('Lamborghini 2001','Lamborghini',2001,4.62797,'kilometres_per_litre',NULL),('Lamborghini 2002','Lamborghini',2002,4.27497,'kilometres_per_litre',NULL),('Lamborghini 2003','Lamborghini',2003,4.27497,'kilometres_per_litre',NULL),('Lamborghini 2004','Lamborghini',2004,4.71233,'kilometres_per_litre',NULL),('Lamborghini 2005','Lamborghini',2005,4.71233,'kilometres_per_litre',NULL),('Lamborghini 2006','Lamborghini',2006,5.27362,'kilometres_per_litre',NULL),('Lamborghini 2007','Lamborghini',2007,5.45639,'kilometres_per_litre',NULL),('Lamborghini 2008','Lamborghini',2008,5.07604,'kilometres_per_litre',NULL),('Lamborghini 2009','Lamborghini',2009,5.44195,'kilometres_per_litre',NULL),('Lamborghini 2010','Lamborghini',2010,5.37823,'kilometres_per_litre',NULL),('Land Rover 1987','Land Rover',1987,5.39236,'kilometres_per_litre',NULL),('Land Rover 1988','Land Rover',1988,5.55352,'kilometres_per_litre',NULL),('Land Rover 1989','Land Rover',1989,5.20812,'kilometres_per_litre',NULL),('Land Rover 1990','Land Rover',1990,5.53414,'kilometres_per_litre',NULL),('Land Rover 1991','Land Rover',1991,5.53414,'kilometres_per_litre',NULL),('Land Rover 1992','Land Rover',1992,5.53414,'kilometres_per_litre',NULL),('Land Rover 1997','Land Rover',1997,5.69862,'kilometres_per_litre',NULL),('Land Rover 1998','Land Rover',1998,5.77235,'kilometres_per_litre',NULL),('Land Rover 1999','Land Rover',1999,5.76289,'kilometres_per_litre',NULL),('Land Rover 2000','Land Rover',2000,5.71167,'kilometres_per_litre',NULL),('Land Rover 2001','Land Rover',2001,5.67052,'kilometres_per_litre',NULL),('Land Rover 2002','Land Rover',2002,6.16089,'kilometres_per_litre',NULL),('Land Rover 2003','Land Rover',2003,6.41587,'kilometres_per_litre',NULL),('Land Rover 2004','Land Rover',2004,6.07482,'kilometres_per_litre',NULL),('Land Rover 2005','Land Rover',2005,6.38559,'kilometres_per_litre',NULL),('Land Rover 2006','Land Rover',2006,6.25016,'kilometres_per_litre',NULL),('Land Rover 2007','Land Rover',2007,6.32358,'kilometres_per_litre',NULL),('Land Rover 2008','Land Rover',2008,6.55943,'kilometres_per_litre',NULL),('Land Rover 2009','Land Rover',2009,6.55943,'kilometres_per_litre',NULL),('Land Rover 2010','Land Rover',2010,6.53018,'kilometres_per_litre',NULL),('Lexus 1990','Lexus',1990,8.40197,'kilometres_per_litre',NULL),('Lexus 1991','Lexus',1991,8.20991,'kilometres_per_litre',NULL),('Lexus 1992','Lexus',1992,7.95133,'kilometres_per_litre',NULL),('Lexus 1993','Lexus',1993,7.97616,'kilometres_per_litre',NULL),('Lexus 1994','Lexus',1994,7.91288,'kilometres_per_litre',NULL),('Lexus 1995','Lexus',1995,8.17396,'kilometres_per_litre',NULL),('Lexus 1996','Lexus',1996,8.05185,'kilometres_per_litre',NULL),('Lexus 1997','Lexus',1997,7.87934,'kilometres_per_litre',NULL),('Lexus 1998','Lexus',1998,7.97707,'kilometres_per_litre',NULL),('Lexus 1999','Lexus',1999,7.99657,'kilometres_per_litre',NULL),('Lexus 2000','Lexus',2000,7.96542,'kilometres_per_litre',NULL),('Lexus 2001','Lexus',2001,7.79502,'kilometres_per_litre',NULL),('Lexus 2002','Lexus',2002,7.99902,'kilometres_per_litre',NULL),('Lexus 2003','Lexus',2003,7.85451,'kilometres_per_litre',NULL),('Lexus 2004','Lexus',2004,8.00854,'kilometres_per_litre',NULL),('Lexus 2005','Lexus',2005,8.10266,'kilometres_per_litre',NULL),('Lexus 2006','Lexus',2006,8.94,'kilometres_per_litre',NULL),('Lexus 2007','Lexus',2007,8.97905,'kilometres_per_litre',NULL),('Lexus 2008','Lexus',2008,8.93438,'kilometres_per_litre',NULL),('Lexus 2009','Lexus',2009,8.69554,'kilometres_per_litre',NULL),('Lexus 2010','Lexus',2010,9.38946,'kilometres_per_litre',NULL),('Lincoln 1985','Lincoln',1985,10.313,'kilometres_per_litre',NULL),('Lincoln 1986','Lincoln',1986,9.75538,'kilometres_per_litre',NULL),('Lincoln 1987','Lincoln',1987,10.1344,'kilometres_per_litre',NULL),('Lincoln 1988','Lincoln',1988,9.12407,'kilometres_per_litre',NULL),('Lincoln 1989','Lincoln',1989,9.0948,'kilometres_per_litre',NULL),('Lincoln 1990','Lincoln',1990,8.56601,'kilometres_per_litre',NULL),('Lincoln 1991','Lincoln',1991,9.4728,'kilometres_per_litre',NULL),('Lincoln 1992','Lincoln',1992,9.51648,'kilometres_per_litre',NULL),('Lincoln 1993','Lincoln',1993,9.73725,'kilometres_per_litre',NULL),('Lincoln 1994','Lincoln',1994,9.67915,'kilometres_per_litre',NULL),('Lincoln 1995','Lincoln',1995,9.61813,'kilometres_per_litre',NULL),('Lincoln 1996','Lincoln',1996,9.68417,'kilometres_per_litre',NULL),('Lincoln 1997','Lincoln',1997,9.54366,'kilometres_per_litre',NULL),('Lincoln 1998','Lincoln',1998,9.17398,'kilometres_per_litre',NULL),('Lincoln 1999','Lincoln',1999,8.9892,'kilometres_per_litre',NULL),('Lincoln 2000','Lincoln',2000,8.54683,'kilometres_per_litre',NULL),('Lincoln 2001','Lincoln',2001,8.17834,'kilometres_per_litre',NULL),('Lincoln 2002','Lincoln',2002,8.01244,'kilometres_per_litre',NULL),('Lincoln 2003','Lincoln',2003,7.747,'kilometres_per_litre',NULL),('Lincoln 2004','Lincoln',2004,7.82614,'kilometres_per_litre',NULL),('Lincoln 2005','Lincoln',2005,8.03697,'kilometres_per_litre',NULL),('Lincoln 2006','Lincoln',2006,8.04977,'kilometres_per_litre',NULL),('Lincoln 2007','Lincoln',2007,7.99263,'kilometres_per_litre',NULL),('Lincoln 2008','Lincoln',2008,8.06629,'kilometres_per_litre',NULL),('Lincoln 2009','Lincoln',2009,8.26499,'kilometres_per_litre',NULL),('Lincoln 2010','Lincoln',2010,9.45923,'kilometres_per_litre',NULL),('Lotus 1985','Lotus',1985,7.73762,'kilometres_per_litre',90),('Lotus 1987','Lotus',1987,8.36471,'kilometres_per_litre',NULL),('Lotus 1988','Lotus',1988,8.12632,'kilometres_per_litre',NULL),('Lotus 1989','Lotus',1989,8.39742,'kilometres_per_litre',NULL),('Lotus 1990','Lotus',1990,8.3636,'kilometres_per_litre',NULL),('Lotus 1991','Lotus',1991,9.37936,'kilometres_per_litre',NULL),('Lotus 1992','Lotus',1992,9.37936,'kilometres_per_litre',NULL),('Lotus 1993','Lotus',1993,9.22247,'kilometres_per_litre',NULL),('Lotus 1994','Lotus',1994,8.3636,'kilometres_per_litre',NULL),('Lotus 1995','Lotus',1995,10.1184,'kilometres_per_litre',227),('Lotus 1997','Lotus',1997,9.05556,'kilometres_per_litre',119),('Lotus 1998','Lotus',1998,9.05556,'kilometres_per_litre',102),('Lotus 2000','Lotus',2000,8.80048,'kilometres_per_litre',117),('Lotus 2003','Lotus',2003,8.84299,'kilometres_per_litre',96),('Lotus 2004','Lotus',2004,8.84299,'kilometres_per_litre',39),('Lotus 2005','Lotus',2005,12.4992,'kilometres_per_litre',3320),('Lotus 2006','Lotus',2006,13.0944,'kilometres_per_litre',1424),('Lotus 2007','Lotus',2007,12.7968,'kilometres_per_litre',732),('Lotus 2008','Lotus',2008,12.7118,'kilometres_per_litre',252),('Lotus 2010','Lotus',2010,10.0226,'kilometres_per_litre',NULL),('Maserati 1985','Maserati',1985,7.14241,'kilometres_per_litre',2001),('Maserati 1986','Maserati',1986,6.97236,'kilometres_per_litre',1212),('Maserati 1987','Maserati',1987,7.56756,'kilometres_per_litre',706),('Maserati 1988','Maserati',1988,8.36165,'kilometres_per_litre',NULL),('Maserati 1989','Maserati',1989,7.95019,'kilometres_per_litre',345),('Maserati 1990','Maserati',1990,8.12024,'kilometres_per_litre',62),('Maserati 1991','Maserati',1991,8.2903,'kilometres_per_litre',4),('Maserati 2002','Maserati',2002,5.3846,'kilometres_per_litre',NULL),('Maserati 2003','Maserati',2003,5.46832,'kilometres_per_litre',NULL),('Maserati 2004','Maserati',2004,5.46237,'kilometres_per_litre',NULL),('Maserati 2005','Maserati',2005,5.49935,'kilometres_per_litre',NULL),('Maserati 2006','Maserati',2006,7.22744,'kilometres_per_litre',2437),('Maserati 2007','Maserati',2007,7.3975,'kilometres_per_litre',2176),('Maserati 2008','Maserati',2008,7.90767,'kilometres_per_litre',2661),('Maserati 2009','Maserati',2009,6.43917,'kilometres_per_litre',NULL),('Maserati 2010','Maserati',2010,6.43701,'kilometres_per_litre',NULL),('Maybach 2004','Maybach',2004,5.64054,'kilometres_per_litre',NULL),('Maybach 2005','Maybach',2005,5.66697,'kilometres_per_litre',NULL),('Maybach 2006','Maybach',2006,5.66697,'kilometres_per_litre',NULL),('Maybach 2007','Maybach',2007,5.43864,'kilometres_per_litre',NULL),('Maybach 2008','Maybach',2008,5.37097,'kilometres_per_litre',NULL),('Maybach 2009','Maybach',2009,5.37097,'kilometres_per_litre',NULL),('Maybach 2010','Maybach',2010,5.40114,'kilometres_per_litre',NULL),('Mazda 1985','Mazda',1985,12.8819,'kilometres_per_litre',220517),('Mazda 1986','Mazda',1986,12.2535,'kilometres_per_litre',406305),('Mazda 1987','Mazda',1987,11.8899,'kilometres_per_litre',414862),('Mazda 1988','Mazda',1988,11.9667,'kilometres_per_litre',366943),('Mazda 1989','Mazda',1989,11.9247,'kilometres_per_litre',353143),('Mazda 1990','Mazda',1990,11.9957,'kilometres_per_litre',370893),('Mazda 1991','Mazda',1991,12.0827,'kilometres_per_litre',352193),('Mazda 1992','Mazda',1992,12.1292,'kilometres_per_litre',301161),('Mazda 1993','Mazda',1993,12.3892,'kilometres_per_litre',357294),('Mazda 1994','Mazda',1994,12.6661,'kilometres_per_litre',284634),('Mazda 1995','Mazda',1995,12.9168,'kilometres_per_litre',288221),('Mazda 1996','Mazda',1996,13.176,'kilometres_per_litre',189415),('Mazda 1997','Mazda',1997,9.03434,'kilometres_per_litre',NULL),('Mazda 1998','Mazda',1998,8.73013,'kilometres_per_litre',NULL),('Mazda 1999','Mazda',1999,8.98855,'kilometres_per_litre',NULL),('Mazda 2000','Mazda',2000,8.41022,'kilometres_per_litre',NULL),('Mazda 2001','Mazda',2001,8.86524,'kilometres_per_litre',NULL),('Mazda 2002','Mazda',2002,8.70051,'kilometres_per_litre',NULL),('Mazda 2003','Mazda',2003,8.68417,'kilometres_per_litre',NULL),('Mazda 2004','Mazda',2004,9.06266,'kilometres_per_litre',NULL),('Mazda 2005','Mazda',2005,9.07898,'kilometres_per_litre',NULL),('Mazda 2006','Mazda',2006,9.20292,'kilometres_per_litre',NULL),('Mazda 2007','Mazda',2007,9.07394,'kilometres_per_litre',NULL),('Mazda 2008','Mazda',2008,9.42092,'kilometres_per_litre',NULL),('Mazda 2009','Mazda',2009,12.7385,'kilometres_per_litre',146780),('Mazda 2010','Mazda',2010,10.0443,'kilometres_per_litre',NULL),('Mercedes-Benz 1985','Mercedes-Benz',1985,10.0334,'kilometres_per_litre',92254),('Mercedes-Benz 1986','Mercedes-Benz',1986,9.05556,'kilometres_per_litre',86020),('Mercedes-Benz 1987','Mercedes-Benz',1987,9.4807,'kilometres_per_litre',110954),('Mercedes-Benz 1988','Mercedes-Benz',1988,9.05556,'kilometres_per_litre',77853),('Mercedes-Benz 1989','Mercedes-Benz',1989,9.09807,'kilometres_per_litre',80059),('Mercedes-Benz 1990','Mercedes-Benz',1990,9.09807,'kilometres_per_litre',57561),('Mercedes-Benz 1991','Mercedes-Benz',1991,9.4807,'kilometres_per_litre',73729),('Mercedes-Benz 1992','Mercedes-Benz',1992,9.31065,'kilometres_per_litre',64723),('Mercedes-Benz 1993','Mercedes-Benz',1993,9.73579,'kilometres_per_litre',58833),('Mercedes-Benz 1994','Mercedes-Benz',1994,10.0759,'kilometres_per_litre',59232),('Mercedes-Benz 1995','Mercedes-Benz',1995,10.501,'kilometres_per_litre',100172),('Mercedes-Benz 1996','Mercedes-Benz',1996,10.7561,'kilometres_per_litre',62051),('Mercedes-Benz 1997','Mercedes-Benz',1997,10.7136,'kilometres_per_litre',102009),('Mercedes-Benz 1998','Mercedes-Benz',1998,10.911,'kilometres_per_litre',151728),('Mercedes-Benz 1999','Mercedes-Benz',1999,8.2448,'kilometres_per_litre',NULL),('Mercedes-Benz 2000','Mercedes-Benz',2000,8.21135,'kilometres_per_litre',NULL),('Mercedes-Benz 2001','Mercedes-Benz',2001,8.20222,'kilometres_per_litre',NULL),('Mercedes-Benz 2002','Mercedes-Benz',2002,7.96332,'kilometres_per_litre',NULL),('Mercedes-Benz 2003','Mercedes-Benz',2003,7.89984,'kilometres_per_litre',NULL),('Mercedes-Benz 2004','Mercedes-Benz',2004,7.83762,'kilometres_per_litre',NULL),('Mercedes-Benz 2005','Mercedes-Benz',2005,7.68945,'kilometres_per_litre',NULL),('Mercedes-Benz 2006','Mercedes-Benz',2006,7.7034,'kilometres_per_litre',NULL),('Mercedes-Benz 2007','Mercedes-Benz',2007,7.45174,'kilometres_per_litre',NULL),('Mercedes-Benz 2008','Mercedes-Benz',2008,7.63283,'kilometres_per_litre',NULL),('Mercedes-Benz 2009','Mercedes-Benz',2009,7.40968,'kilometres_per_litre',NULL),('Mercedes-Benz 2010','Mercedes-Benz',2010,8.00861,'kilometres_per_litre',NULL),('Mercury 1993','Mercury',1993,7.67824,'kilometres_per_litre',NULL),('Mercury 1994','Mercury',1994,7.67824,'kilometres_per_litre',NULL),('Mercury 1995','Mercury',1995,7.80257,'kilometres_per_litre',NULL),('Mercury 1996','Mercury',1996,7.67824,'kilometres_per_litre',NULL),('Mercury 1997','Mercury',1997,6.93348,'kilometres_per_litre',NULL),('Mercury 1998','Mercury',1998,6.96745,'kilometres_per_litre',NULL),('Mercury 1999','Mercury',1999,6.84326,'kilometres_per_litre',NULL),('Mercury 2000','Mercury',2000,7.00402,'kilometres_per_litre',NULL),('Mercury 2001','Mercury',2001,6.87618,'kilometres_per_litre',NULL),('Mercury 2002','Mercury',2002,6.54764,'kilometres_per_litre',NULL),('Mercury 2003','Mercury',2003,6.22141,'kilometres_per_litre',NULL),('Mercury 2004','Mercury',2004,6.40687,'kilometres_per_litre',NULL),('Mercury 2005','Mercury',2005,6.97543,'kilometres_per_litre',NULL),('Mercury 2006','Mercury',2006,8.07401,'kilometres_per_litre',NULL),('Mercury 2007','Mercury',2007,8.07375,'kilometres_per_litre',NULL),('Mercury 2008','Mercury',2008,8.88285,'kilometres_per_litre',NULL),('Mercury 2009','Mercury',2009,9.1195,'kilometres_per_litre',NULL),('Mercury 2010','Mercury',2010,9.22508,'kilometres_per_litre',NULL),('Merkur 1985','Merkur',1985,8.02486,'kilometres_per_litre',NULL),('Merkur 1986','Merkur',1986,8.02486,'kilometres_per_litre',NULL),('Merkur 1987','Merkur',1987,8.11287,'kilometres_per_litre',NULL),('Merkur 1988','Merkur',1988,7.92664,'kilometres_per_litre',NULL),('Merkur 1989','Merkur',1989,7.92664,'kilometres_per_litre',NULL),('Mini 2004','Mini',2004,11.4142,'kilometres_per_litre',NULL),('Mini 2005','Mini',2005,11.3639,'kilometres_per_litre',NULL),('Mini 2006','Mini',2006,11.1486,'kilometres_per_litre',NULL),('Mini 2007','Mini',2007,11.5976,'kilometres_per_litre',NULL),('Mini 2008','Mini',2008,12.1356,'kilometres_per_litre',NULL),('Mini 2009','Mini',2009,12.7558,'kilometres_per_litre',NULL),('Mini 2010','Mini',2010,12.603,'kilometres_per_litre',NULL),('Mitsubishi 1985','Mitsubishi',1985,13.2545,'kilometres_per_litre',65179),('Mitsubishi 1986','Mitsubishi',1986,12.9773,'kilometres_per_litre',76987),('Mitsubishi 1987','Mitsubishi',1987,12.7216,'kilometres_per_litre',91531),('Mitsubishi 1988','Mitsubishi',1988,12.5533,'kilometres_per_litre',73583),('Mitsubishi 1989','Mitsubishi',1989,12.5843,'kilometres_per_litre',94140),('Mitsubishi 1990','Mitsubishi',1990,12.506,'kilometres_per_litre',195841),('Mitsubishi 1991','Mitsubishi',1991,12.408,'kilometres_per_litre',183205),('Mitsubishi 1992','Mitsubishi',1992,11.6803,'kilometres_per_litre',218164),('Mitsubishi 1993','Mitsubishi',1993,12.0866,'kilometres_per_litre',168148),('Mitsubishi 1994','Mitsubishi',1994,12.0278,'kilometres_per_litre',222088),('Mitsubishi 1995','Mitsubishi',1995,12.0968,'kilometres_per_litre',279163),('Mitsubishi 1996','Mitsubishi',1996,12.5235,'kilometres_per_litre',150563),('Mitsubishi 1997','Mitsubishi',1997,12.4102,'kilometres_per_litre',247795),('Mitsubishi 1998','Mitsubishi',1998,12.0654,'kilometres_per_litre',202459),('Mitsubishi 1999','Mitsubishi',1999,12.0495,'kilometres_per_litre',227700),('Mitsubishi 2000','Mitsubishi',2000,11.5294,'kilometres_per_litre',316121),('Mitsubishi 2001','Mitsubishi',2001,9.08511,'kilometres_per_litre',NULL),('Mitsubishi 2002','Mitsubishi',2002,9.35908,'kilometres_per_litre',NULL),('Mitsubishi 2003','Mitsubishi',2003,9.06737,'kilometres_per_litre',NULL),('Mitsubishi 2004','Mitsubishi',2004,9.04191,'kilometres_per_litre',NULL),('Mitsubishi 2005','Mitsubishi',2005,11.7236,'kilometres_per_litre',108188),('Mitsubishi 2006','Mitsubishi',2006,11.955,'kilometres_per_litre',134609),('Mitsubishi 2007','Mitsubishi',2007,11.5493,'kilometres_per_litre',116474),('Mitsubishi 2008','Mitsubishi',2008,12.2168,'kilometres_per_litre',100728),('Mitsubishi 2009','Mitsubishi',2009,12.7606,'kilometres_per_litre',93085),('Mitsubishi 2010','Mitsubishi',2010,9.42693,'kilometres_per_litre',NULL),('Morgan 2003','Morgan',2003,7.62285,'kilometres_per_litre',NULL),('Nissan 1985','Nissan',1985,12.532,'kilometres_per_litre',576457),('Nissan 1986','Nissan',1986,12.301,'kilometres_per_litre',528707),('Nissan 1987','Nissan',1987,12.0322,'kilometres_per_litre',1049640),('Nissan 1988','Nissan',1988,12.2127,'kilometres_per_litre',596628),('Nissan 1989','Nissan',1989,12.2601,'kilometres_per_litre',623914),('Nissan 1990','Nissan',1990,11.7826,'kilometres_per_litre',650871),('Nissan 1991','Nissan',1991,11.8655,'kilometres_per_litre',577373),('Nissan 1992','Nissan',1992,12.2091,'kilometres_per_litre',508795),('Nissan 1993','Nissan',1993,11.7132,'kilometres_per_litre',551703),('Nissan 1994','Nissan',1994,11.837,'kilometres_per_litre',715664),('Nissan 1995','Nissan',1995,11.3431,'kilometres_per_litre',863854),('Nissan 1996','Nissan',1996,12.0735,'kilometres_per_litre',675475),('Nissan 1997','Nissan',1997,11.5739,'kilometres_per_litre',803112),('Nissan 1998','Nissan',1998,11.8112,'kilometres_per_litre',610907),('Nissan 1999','Nissan',1999,11.6128,'kilometres_per_litre',574095),('Nissan 2000','Nissan',2000,10.6064,'kilometres_per_litre',805038),('Nissan 2001','Nissan',2001,10.5242,'kilometres_per_litre',751316),('Nissan 2002','Nissan',2002,11.005,'kilometres_per_litre',731458),('Nissan 2003','Nissan',2003,10.9993,'kilometres_per_litre',787709),('Nissan 2004','Nissan',2004,10.5251,'kilometres_per_litre',966286),('Nissan 2005','Nissan',2005,11.2475,'kilometres_per_litre',1119308),('Nissan 2006','Nissan',2006,11.2297,'kilometres_per_litre',1076456),('Nissan 2007','Nissan',2007,12.0686,'kilometres_per_litre',912931),('Nissan 2008','Nissan',2008,12.402,'kilometres_per_litre',1023415),('Nissan 2009','Nissan',2009,13.1728,'kilometres_per_litre',840322),('Nissan 2010','Nissan',2010,9.21775,'kilometres_per_litre',NULL),('Oldsmobile 1985','Oldsmobile',1985,9.28061,'kilometres_per_litre',NULL),('Oldsmobile 1986','Oldsmobile',1986,9.25971,'kilometres_per_litre',NULL),('Oldsmobile 1987','Oldsmobile',1987,9.44188,'kilometres_per_litre',NULL),('Oldsmobile 1988','Oldsmobile',1988,9.99955,'kilometres_per_litre',NULL),('Oldsmobile 1989','Oldsmobile',1989,9.47633,'kilometres_per_litre',NULL),('Oldsmobile 1990','Oldsmobile',1990,9.28592,'kilometres_per_litre',NULL),('Oldsmobile 1991','Oldsmobile',1991,8.9943,'kilometres_per_litre',NULL),('Oldsmobile 1992','Oldsmobile',1992,8.74705,'kilometres_per_litre',NULL),('Oldsmobile 1993','Oldsmobile',1993,8.96742,'kilometres_per_litre',NULL),('Oldsmobile 1994','Oldsmobile',1994,9.09099,'kilometres_per_litre',NULL),('Oldsmobile 1995','Oldsmobile',1995,8.95898,'kilometres_per_litre',NULL),('Oldsmobile 1996','Oldsmobile',1996,9.14672,'kilometres_per_litre',NULL),('Oldsmobile 1997','Oldsmobile',1997,8.89558,'kilometres_per_litre',NULL),('Oldsmobile 1998','Oldsmobile',1998,9.11375,'kilometres_per_litre',NULL),('Oldsmobile 1999','Oldsmobile',1999,8.84636,'kilometres_per_litre',NULL),('Oldsmobile 2000','Oldsmobile',2000,8.98075,'kilometres_per_litre',NULL),('Oldsmobile 2001','Oldsmobile',2001,8.88125,'kilometres_per_litre',NULL),('Oldsmobile 2002','Oldsmobile',2002,8.89331,'kilometres_per_litre',NULL),('Oldsmobile 2003','Oldsmobile',2003,8.88591,'kilometres_per_litre',NULL),('Oldsmobile 2004','Oldsmobile',2004,9.1125,'kilometres_per_litre',NULL),('Panoz 1995','Panoz',1995,10.3735,'kilometres_per_litre',9),('Panther 1986','Panther',1986,11.6489,'kilometres_per_litre',85),('Panther 1988','Panther',1988,8.89346,'kilometres_per_litre',NULL),('Peugeot 1985','Peugeot',1985,10.7136,'kilometres_per_litre',20847),('Peugeot 1986','Peugeot',1986,10.5436,'kilometres_per_litre',13218),('Peugeot 1987','Peugeot',1987,10.246,'kilometres_per_litre',8080),('Peugeot 1988','Peugeot',1988,10.0334,'kilometres_per_litre',4019),('Peugeot 1989','Peugeot',1989,10.8412,'kilometres_per_litre',9756),('Peugeot 1990','Peugeot',1990,10.8412,'kilometres_per_litre',725),('Peugeot 1991','Peugeot',1991,11.1813,'kilometres_per_litre',3211),('Peugeot 1992','Peugeot',1992,10.6286,'kilometres_per_litre',467),('Pininfarina 1985','Pininfarina',1985,11.904,'kilometres_per_litre',600),('Plymouth 1985','Plymouth',1985,9.91128,'kilometres_per_litre',NULL),('Plymouth 1986','Plymouth',1986,10.2025,'kilometres_per_litre',NULL),('Plymouth 1987','Plymouth',1987,9.62211,'kilometres_per_litre',NULL),('Plymouth 1988','Plymouth',1988,10.1357,'kilometres_per_litre',NULL),('Plymouth 1989','Plymouth',1989,9.77074,'kilometres_per_litre',NULL),('Plymouth 1990','Plymouth',1990,9.7268,'kilometres_per_litre',NULL),('Plymouth 1991','Plymouth',1991,9.53266,'kilometres_per_litre',NULL),('Plymouth 1992','Plymouth',1992,9.38175,'kilometres_per_litre',NULL),('Plymouth 1993','Plymouth',1993,9.62689,'kilometres_per_litre',NULL),('Plymouth 1994','Plymouth',1994,9.36199,'kilometres_per_litre',NULL),('Plymouth 1995','Plymouth',1995,8.9552,'kilometres_per_litre',NULL),('Plymouth 1996','Plymouth',1996,9.51456,'kilometres_per_litre',NULL),('Plymouth 1997','Plymouth',1997,9.88698,'kilometres_per_litre',NULL),('Plymouth 1998','Plymouth',1998,9.94233,'kilometres_per_litre',NULL),('Plymouth 1999','Plymouth',1999,9.42332,'kilometres_per_litre',NULL),('Plymouth 2000','Plymouth',2000,9.3148,'kilometres_per_litre',NULL),('Plymouth 2001','Plymouth',2001,9.87144,'kilometres_per_litre',NULL),('Pontiac 1985','Pontiac',1985,9.81633,'kilometres_per_litre',NULL),('Pontiac 1986','Pontiac',1986,9.85523,'kilometres_per_litre',NULL),('Pontiac 1987','Pontiac',1987,9.96324,'kilometres_per_litre',NULL),('Pontiac 1988','Pontiac',1988,10.243,'kilometres_per_litre',NULL),('Pontiac 1989','Pontiac',1989,10.5119,'kilometres_per_litre',NULL),('Pontiac 1990','Pontiac',1990,10.035,'kilometres_per_litre',NULL),('Pontiac 1991','Pontiac',1991,9.87509,'kilometres_per_litre',NULL),('Pontiac 1992','Pontiac',1992,9.69228,'kilometres_per_litre',NULL),('Pontiac 1993','Pontiac',1993,9.45606,'kilometres_per_litre',NULL),('Pontiac 1994','Pontiac',1994,9.7814,'kilometres_per_litre',NULL),('Pontiac 1995','Pontiac',1995,9.04874,'kilometres_per_litre',NULL),('Pontiac 1996','Pontiac',1996,9.5055,'kilometres_per_litre',NULL),('Pontiac 1997','Pontiac',1997,9.53934,'kilometres_per_litre',NULL),('Pontiac 1998','Pontiac',1998,9.40713,'kilometres_per_litre',NULL),('Pontiac 1999','Pontiac',1999,9.32551,'kilometres_per_litre',NULL),('Pontiac 2000','Pontiac',2000,9.42213,'kilometres_per_litre',NULL),('Pontiac 2001','Pontiac',2001,9.35899,'kilometres_per_litre',NULL),('Pontiac 2002','Pontiac',2002,9.45125,'kilometres_per_litre',NULL),('Pontiac 2003','Pontiac',2003,9.93001,'kilometres_per_litre',NULL),('Pontiac 2004','Pontiac',2004,9.74861,'kilometres_per_litre',NULL),('Pontiac 2005','Pontiac',2005,9.99351,'kilometres_per_litre',NULL),('Pontiac 2006','Pontiac',2006,9.38137,'kilometres_per_litre',NULL),('Pontiac 2007','Pontiac',2007,9.76947,'kilometres_per_litre',NULL),('Pontiac 2008','Pontiac',2008,9.85755,'kilometres_per_litre',NULL),('Pontiac 2009','Pontiac',2009,10.5583,'kilometres_per_litre',NULL),('Pontiac 2010','Pontiac',2010,11.0088,'kilometres_per_litre',NULL),('Porsche 1986','Porsche',1986,10.7986,'kilometres_per_litre',27448),('Porsche 1987','Porsche',1987,10.7986,'kilometres_per_litre',31616),('Porsche 1988','Porsche',1988,10.501,'kilometres_per_litre',16137),('Porsche 1989','Porsche',1989,9.77831,'kilometres_per_litre',10715),('Porsche 1990','Porsche',1990,9.22562,'kilometres_per_litre',7013),('Porsche 1991','Porsche',1991,9.05556,'kilometres_per_litre',6037),('Porsche 1992','Porsche',1992,9.52322,'kilometres_per_litre',3065),('Porsche 1993','Porsche',1993,9.56573,'kilometres_per_litre',2674),('Porsche 1994','Porsche',1994,9.39568,'kilometres_per_litre',2980),('Porsche 1995','Porsche',1995,9.65076,'kilometres_per_litre',8123),('Porsche 1996','Porsche',1996,9.14059,'kilometres_per_litre',7092),('Porsche 1997','Porsche',1997,9.86333,'kilometres_per_litre',11748),('Porsche 1998','Porsche',1998,10.416,'kilometres_per_litre',9781),('Porsche 1999','Porsche',1999,10.246,'kilometres_per_litre',26121),('Porsche 2000','Porsche',2000,10.331,'kilometres_per_litre',21141),('Porsche 2001','Porsche',2001,10.0759,'kilometres_per_litre',23910),('Porsche 2002','Porsche',2002,10.1609,'kilometres_per_litre',22009),('Porsche 2003','Porsche',2003,10.0733,'kilometres_per_litre',19184),('Porsche 2004','Porsche',2004,8.56143,'kilometres_per_litre',37990),('Porsche 2005','Porsche',2005,9.19008,'kilometres_per_litre',28913),('Porsche 2006','Porsche',2006,9.77841,'kilometres_per_litre',41738),('Porsche 2007','Porsche',2007,11.2663,'kilometres_per_litre',22500),('Porsche 2008','Porsche',2008,9.86738,'kilometres_per_litre',37706),('Porsche 2009','Porsche',2009,10.2965,'kilometres_per_litre',19993),('Porsche 2010','Porsche',2010,8.68882,'kilometres_per_litre',NULL),('Quantum 2002','Quantum',2002,12.8393,'kilometres_per_litre',1483),('Quantum 2003','Quantum',2003,13.7747,'kilometres_per_litre',313),('Quantum 2004','Quantum',2004,13.7321,'kilometres_per_litre',391),('Qvale 2000','Qvale',2000,7.8845,'kilometres_per_litre',NULL),('Renault 1985','Renault',1985,14.3699,'kilometres_per_litre',141023),('Renault 1986','Renault',1986,10.9262,'kilometres_per_litre',3),('Renault 1987','Renault',1987,11.74,'kilometres_per_litre',NULL),('Rolls-Royce 1985','Rolls-Royce',1985,4.76161,'kilometres_per_litre',1128),('Rolls-Royce 1986','Rolls-Royce',1986,4.7191,'kilometres_per_litre',1019),('Rolls-Royce 1987','Rolls-Royce',1987,4.84664,'kilometres_per_litre',1168),('Rolls-Royce 1988','Rolls-Royce',1988,5.27178,'kilometres_per_litre',1216),('Rolls-Royce 1989','Rolls-Royce',1989,5.3143,'kilometres_per_litre',1430),('Rolls-Royce 1990','Rolls-Royce',1990,5.6119,'kilometres_per_litre',901),('Rolls-Royce 1991','Rolls-Royce',1991,5.65441,'kilometres_per_litre',853),('Rolls-Royce 1992','Rolls-Royce',1992,6.07956,'kilometres_per_litre',96),('Rolls-Royce 1993','Rolls-Royce',1993,5.99453,'kilometres_per_litre',389),('Rolls-Royce 1994','Rolls-Royce',1994,5.99453,'kilometres_per_litre',281),('Rolls-Royce 1995','Rolls-Royce',1995,6.03704,'kilometres_per_litre',281),('Rolls-Royce 1996','Rolls-Royce',1996,6.63224,'kilometres_per_litre',470),('Rolls-Royce 1997','Rolls-Royce',1997,6.41967,'kilometres_per_litre',445),('Rolls-Royce 1998','Rolls-Royce',1998,5.02877,'kilometres_per_litre',NULL),('Rolls-Royce 1999','Rolls-Royce',1999,5.22343,'kilometres_per_litre',NULL),('Rolls-Royce 2000','Rolls-Royce',2000,5.30778,'kilometres_per_litre',NULL),('Rolls-Royce 2001','Rolls-Royce',2001,5.41449,'kilometres_per_litre',NULL),('Rolls-Royce 2002','Rolls-Royce',2002,5.56381,'kilometres_per_litre',NULL),('Rolls-Royce 2004','Rolls-Royce',2004,5.99172,'kilometres_per_litre',NULL),('Rolls-Royce 2005','Rolls-Royce',2005,5.95238,'kilometres_per_litre',NULL),('Rolls-Royce 2006','Rolls-Royce',2006,5.95238,'kilometres_per_litre',NULL),('Rolls-Royce 2007','Rolls-Royce',2007,6.05815,'kilometres_per_litre',NULL),('Rolls-Royce 2008','Rolls-Royce',2008,6.05815,'kilometres_per_litre',NULL),('Rolls-Royce 2009','Rolls-Royce',2009,6.05815,'kilometres_per_litre',NULL),('Rolls-Royce 2010','Rolls-Royce',2010,6.20408,'kilometres_per_litre',NULL),('Roush Industries, Inc. 2010','Roush Industries, Inc.',2010,7.66709,'kilometres_per_litre',NULL),('Rover 1987','Rover',1987,6.97236,'kilometres_per_litre',1761),('Rover 1988','Rover',1988,7.0999,'kilometres_per_litre',3957),('Rover 1989','Rover',1989,6.54721,'kilometres_per_litre',4323),('Rover 1990','Rover',1990,6.92984,'kilometres_per_litre',4862),('Rover 1991','Rover',1991,6.92984,'kilometres_per_litre',3718),('Rover 1993','Rover',1993,6.58973,'kilometres_per_litre',4468),('Rover 1994','Rover',1994,6.97236,'kilometres_per_litre',8463),('Rover 1995','Rover',1995,6.92984,'kilometres_per_litre',20926),('Rover 1996','Rover',1996,7.31247,'kilometres_per_litre',24742),('Saab 1985','Saab',1985,11.2238,'kilometres_per_litre',39858),('Saab 1986','Saab',1986,11.1813,'kilometres_per_litre',48300),('Saab 1987','Saab',1987,11.1388,'kilometres_per_litre',53354),('Saab 1988','Saab',1988,11.2663,'kilometres_per_litre',44658),('Saab 1989','Saab',1989,11.3088,'kilometres_per_litre',35427),('Saab 1990','Saab',1990,8.73979,'kilometres_per_litre',NULL),('Saab 1991','Saab',1991,8.54415,'kilometres_per_litre',NULL),('Saab 1992','Saab',1992,8.42591,'kilometres_per_litre',NULL),('Saab 1993','Saab',1993,8.42797,'kilometres_per_litre',NULL),('Saab 1994','Saab',1994,8.6027,'kilometres_per_litre',NULL),('Saab 1995','Saab',1995,8.90394,'kilometres_per_litre',NULL),('Saab 1997','Saab',1997,8.75264,'kilometres_per_litre',NULL),('Saab 1998','Saab',1998,8.88975,'kilometres_per_litre',NULL),('Saab 1999','Saab',1999,8.80641,'kilometres_per_litre',NULL),('Saab 2000','Saab',2000,9.01449,'kilometres_per_litre',NULL),('Saab 2001','Saab',2001,9.2611,'kilometres_per_litre',NULL),('Saab 2002','Saab',2002,9.44335,'kilometres_per_litre',NULL),('Saab 2003','Saab',2003,9.5124,'kilometres_per_litre',NULL),('Saab 2004','Saab',2004,9.39547,'kilometres_per_litre',NULL),('Saab 2005','Saab',2005,9.39038,'kilometres_per_litre',NULL),('Saab 2006','Saab',2006,8.94132,'kilometres_per_litre',NULL),('Saab 2007','Saab',2007,8.91643,'kilometres_per_litre',NULL),('Saab 2008','Saab',2008,8.56056,'kilometres_per_litre',NULL),('Saab 2009','Saab',2009,7.94484,'kilometres_per_litre',NULL),('Saab 2010','Saab',2010,9.98362,'kilometres_per_litre',NULL),('Saleen 1989','Saleen',1989,7.04122,'kilometres_per_litre',NULL),('Saleen 1990','Saleen',1990,7.04122,'kilometres_per_litre',NULL),('Saleen 1995','Saleen',1995,7.31247,'kilometres_per_litre',111),('Saleen 2008','Saleen',2008,5.91753,'kilometres_per_litre',NULL),('Saleen 2009','Saleen',2009,6.12652,'kilometres_per_litre',NULL),('Saturn 1991','Saturn',1991,11.0095,'kilometres_per_litre',NULL),('Saturn 1992','Saturn',1992,11.101,'kilometres_per_litre',NULL),('Saturn 1993','Saturn',1993,11.3659,'kilometres_per_litre',NULL),('Saturn 1994','Saturn',1994,11.3858,'kilometres_per_litre',NULL),('Saturn 1995','Saturn',1995,11.6934,'kilometres_per_litre',NULL),('Saturn 1996','Saturn',1996,11.7525,'kilometres_per_litre',NULL),('Saturn 1997','Saturn',1997,11.8567,'kilometres_per_litre',NULL),('Saturn 1998','Saturn',1998,11.7442,'kilometres_per_litre',NULL),('Saturn 1999','Saturn',1999,11.9827,'kilometres_per_litre',NULL),('Saturn 2000','Saturn',2000,11.3249,'kilometres_per_litre',NULL),('Saturn 2001','Saturn',2001,11.3494,'kilometres_per_litre',NULL),('Saturn 2002','Saturn',2002,10.8368,'kilometres_per_litre',NULL),('Saturn 2003','Saturn',2003,9.89105,'kilometres_per_litre',NULL),('Saturn 2004','Saturn',2004,9.97632,'kilometres_per_litre',NULL),('Saturn 2005','Saturn',2005,9.47382,'kilometres_per_litre',NULL),('Saturn 2006','Saturn',2006,9.74504,'kilometres_per_litre',NULL),('Saturn 2007','Saturn',2007,9.61166,'kilometres_per_litre',NULL),('Saturn 2008','Saturn',2008,9.77864,'kilometres_per_litre',NULL),('Saturn 2009','Saturn',2009,9.90289,'kilometres_per_litre',NULL),('Saturn 2010','Saturn',2010,9.42835,'kilometres_per_litre',NULL),('Shelby 1986','Shelby',1986,8.68825,'kilometres_per_litre',NULL),('Shelby 1987','Shelby',1987,8.2673,'kilometres_per_litre',NULL),('Shelby 1989','Shelby',1989,7.43355,'kilometres_per_litre',NULL),('Shelby 2008','Shelby',2008,7.68237,'kilometres_per_litre',NULL),('Spyker 2007','Spyker',2007,8.33282,'kilometres_per_litre',7),('Spyker 2009','Spyker',2009,8.2903,'kilometres_per_litre',50),('Subaru 1985','Subaru',1985,13.1835,'kilometres_per_litre',175930),('Subaru 1986','Subaru',1986,12.9281,'kilometres_per_litre',212287),('Subaru 1987','Subaru',1987,12.6477,'kilometres_per_litre',183262),('Subaru 1988','Subaru',1988,13.4195,'kilometres_per_litre',158075),('Subaru 1989','Subaru',1989,13.5311,'kilometres_per_litre',95561),('Subaru 1990','Subaru',1990,12.0239,'kilometres_per_litre',131431),('Subaru 1991','Subaru',1991,12.1176,'kilometres_per_litre',100828),('Subaru 1992','Subaru',1992,12.0183,'kilometres_per_litre',113998),('Subaru 1993','Subaru',1993,12.5734,'kilometres_per_litre',129583),('Subaru 1994','Subaru',1994,12.1081,'kilometres_per_litre',49642),('Subaru 1995','Subaru',1995,12.2867,'kilometres_per_litre',109415),('Subaru 1996','Subaru',1996,11.7765,'kilometres_per_litre',96741),('Subaru 1997','Subaru',1997,12.0316,'kilometres_per_litre',118831),('Subaru 1998','Subaru',1998,11.819,'kilometres_per_litre',156741),('Subaru 1999','Subaru',1999,11.7765,'kilometres_per_litre',157637),('Subaru 2000','Subaru',2000,11.9891,'kilometres_per_litre',143518),('Subaru 2001','Subaru',2001,11.904,'kilometres_per_litre',170843),('Subaru 2002','Subaru',2002,11.734,'kilometres_per_litre',203295),('Subaru 2003','Subaru',2003,11.6902,'kilometres_per_litre',188848),('Subaru 2004','Subaru',2004,11.5537,'kilometres_per_litre',164907),('Subaru 2005','Subaru',2005,11.7733,'kilometres_per_litre',212500),('Subaru 2006','Subaru',2006,11.6673,'kilometres_per_litre',213419),('Subaru 2007','Subaru',2007,11.9464,'kilometres_per_litre',152431),('Subaru 2008','Subaru',2008,12.0095,'kilometres_per_litre',198580),('Subaru 2009','Subaru',2009,12.2302,'kilometres_per_litre',224298),('Subaru 2010','Subaru',2010,9.43958,'kilometres_per_litre',NULL),('Suzuki 1985','Suzuki',1985,19.6063,'kilometres_per_litre',13568),('Suzuki 1986','Suzuki',1986,15.9663,'kilometres_per_litre',47775),('Suzuki 1987','Suzuki',1987,14.5708,'kilometres_per_litre',67678),('Suzuki 1988','Suzuki',1988,14.4243,'kilometres_per_litre',86295),('Suzuki 1989','Suzuki',1989,14.0157,'kilometres_per_litre',40200),('Suzuki 1990','Suzuki',1990,16.588,'kilometres_per_litre',24045),('Suzuki 1991','Suzuki',1991,16.0476,'kilometres_per_litre',40700),('Suzuki 1992','Suzuki',1992,16.0087,'kilometres_per_litre',35756),('Suzuki 1993','Suzuki',1993,15.5896,'kilometres_per_litre',36949),('Suzuki 1994','Suzuki',1994,14.5988,'kilometres_per_litre',42370),('Suzuki 1995','Suzuki',1995,13.2066,'kilometres_per_litre',41977),('Suzuki 1996','Suzuki',1996,12.8187,'kilometres_per_litre',31902),('Suzuki 1997','Suzuki',1997,12.7454,'kilometres_per_litre',33334),('Suzuki 1998','Suzuki',1998,13.4844,'kilometres_per_litre',37383),('Suzuki 1999','Suzuki',1999,11.6727,'kilometres_per_litre',51854),('Suzuki 2000','Suzuki',2000,11.7194,'kilometres_per_litre',58822),('Suzuki 2001','Suzuki',2001,11.2447,'kilometres_per_litre',69011),('Suzuki 2002','Suzuki',2002,10.9148,'kilometres_per_litre',73597),('Suzuki 2003','Suzuki',2003,11.8181,'kilometres_per_litre',63360),('Suzuki 2004','Suzuki',2004,11.5503,'kilometres_per_litre',88919),('Suzuki 2005','Suzuki',2005,11.7889,'kilometres_per_litre',85654),('Suzuki 2006','Suzuki',2006,11.7575,'kilometres_per_litre',116595),('Suzuki 2007','Suzuki',2007,11.6877,'kilometres_per_litre',111247),('Suzuki 2008','Suzuki',2008,12.1502,'kilometres_per_litre',111271),('Suzuki 2009','Suzuki',2009,13.0273,'kilometres_per_litre',35005),('Suzuki 2010','Suzuki',2010,10.3047,'kilometres_per_litre',NULL),('TCSTR 2008','TCSTR',2008,5.51797,'kilometres_per_litre',NULL),('Toyota 1985','Toyota',1985,13.5141,'kilometres_per_litre',694979),('Toyota 1986','Toyota',1986,13.1538,'kilometres_per_litre',800468),('Toyota 1987','Toyota',1987,13.4111,'kilometres_per_litre',796084),('Toyota 1988','Toyota',1988,13.2884,'kilometres_per_litre',803914),('Toyota 1989','Toyota',1989,12.979,'kilometres_per_litre',867386),('Toyota 1990','Toyota',1990,12.4114,'kilometres_per_litre',876992),('Toyota 1991','Toyota',1991,12.4026,'kilometres_per_litre',883368),('Toyota 1992','Toyota',1992,11.6232,'kilometres_per_litre',1069268),('Toyota 1993','Toyota',1993,11.5717,'kilometres_per_litre',1082589),('Toyota 1994','Toyota',1994,11.4697,'kilometres_per_litre',1113790),('Toyota 1995','Toyota',1995,11.8309,'kilometres_per_litre',1087079),('Toyota 1996','Toyota',1996,11.8194,'kilometres_per_litre',1076799),('Toyota 1997','Toyota',1997,11.7626,'kilometres_per_litre',1182923),('Toyota 1998','Toyota',1998,11.898,'kilometres_per_litre',1288755),('Toyota 1999','Toyota',1999,11.7578,'kilometres_per_litre',1470667),('Toyota 2000','Toyota',2000,11.5045,'kilometres_per_litre',1657145),('Toyota 2001','Toyota',2001,11.571,'kilometres_per_litre',1638619),('Toyota 2002','Toyota',2002,11.4206,'kilometres_per_litre',1760356),('Toyota 2003','Toyota',2003,12.0047,'kilometres_per_litre',1851712),('Toyota 2004','Toyota',2004,11.7488,'kilometres_per_litre',2074897),('Toyota 2005','Toyota',2005,12.8284,'kilometres_per_litre',2309788),('Toyota 2006','Toyota',2006,12.565,'kilometres_per_litre',2278062),('Toyota 2007','Toyota',2007,13.1857,'kilometres_per_litre',2841152),('Toyota 2008','Toyota',2008,12.9289,'kilometres_per_litre',2211500),('Toyota 2009','Toyota',2009,14.33,'kilometres_per_litre',1755974),('Toyota 2010','Toyota',2010,9.62276,'kilometres_per_litre',NULL),('TVR 1985','TVR',1985,7.80257,'kilometres_per_litre',NULL),('TVR 1986','TVR',1986,7.80257,'kilometres_per_litre',NULL),('Vector 1996','Vector',1996,4.21269,'kilometres_per_litre',NULL),('Vector 1997','Vector',1997,4.21269,'kilometres_per_litre',NULL),('Vector CORP 1992','Vector CORP',1992,3.52924,'kilometres_per_litre',NULL),('Vector CORP 1993','Vector CORP',1993,3.52924,'kilometres_per_litre',NULL),('Volkswagen 1985','Volkswagen',1985,12.6967,'kilometres_per_litre',276530),('Volkswagen 1986','Volkswagen',1986,12.4996,'kilometres_per_litre',277725),('Volkswagen 1987','Volkswagen',1987,12.5565,'kilometres_per_litre',247856),('Volkswagen 1988','Volkswagen',1988,12.8844,'kilometres_per_litre',204307),('Volkswagen 1989','Volkswagen',1989,12.8232,'kilometres_per_litre',151439),('Volkswagen 1990','Volkswagen',1990,12.203,'kilometres_per_litre',153861),('Volkswagen 1991','Volkswagen',1991,12.5512,'kilometres_per_litre',115165),('Volkswagen 1992','Volkswagen',1992,12.4142,'kilometres_per_litre',84631),('Volkswagen 1993','Volkswagen',1993,11.1694,'kilometres_per_litre',71153),('Volkswagen 1994','Volkswagen',1994,12.1045,'kilometres_per_litre',74667),('Volkswagen 1995','Volkswagen',1995,12.2781,'kilometres_per_litre',141820),('Volkswagen 1996','Volkswagen',1996,12.1591,'kilometres_per_litre',156504),('Volkswagen 1997','Volkswagen',1997,12.2858,'kilometres_per_litre',164717),('Volkswagen 1998','Volkswagen',1998,12.3292,'kilometres_per_litre',219273),('Volkswagen 1999','Volkswagen',1999,12.1294,'kilometres_per_litre',347385),('Volkswagen 2000','Volkswagen',2000,12.2144,'kilometres_per_litre',394362),('Volkswagen 2001','Volkswagen',2001,12.0396,'kilometres_per_litre',469432),('Volkswagen 2002','Volkswagen',2002,12.4471,'kilometres_per_litre',422032),('Volkswagen 2003','Volkswagen',2003,12.586,'kilometres_per_litre',430191),('Volkswagen 2004','Volkswagen',2004,11.803,'kilometres_per_litre',359324),('Volkswagen 2005','Volkswagen',2005,12.0474,'kilometres_per_litre',270952),('Volkswagen 2006','Volkswagen',2006,12.6475,'kilometres_per_litre',347799),('Volkswagen 2007','Volkswagen',2007,11.8659,'kilometres_per_litre',317305),('Volkswagen 2008','Volkswagen',2008,12.0509,'kilometres_per_litre',318482),('Volkswagen 2009','Volkswagen',2009,12.8952,'kilometres_per_litre',292287),('Volkswagen 2010','Volkswagen',2010,10.8805,'kilometres_per_litre',NULL),('Volvo 1985','Volvo',1985,11.5639,'kilometres_per_litre',99752),('Volvo 1986','Volvo',1986,11.3939,'kilometres_per_litre',115364),('Volvo 1987','Volvo',1987,11.2238,'kilometres_per_litre',112600),('Volvo 1988','Volvo',1988,11.0537,'kilometres_per_litre',94925),('Volvo 1989','Volvo',1989,10.6286,'kilometres_per_litre',105369),('Volvo 1990','Volvo',1990,10.6711,'kilometres_per_litre',102037),('Volvo 1991','Volvo',1991,10.7561,'kilometres_per_litre',70622),('Volvo 1992','Volvo',1992,10.8837,'kilometres_per_litre',56437),('Volvo 1993','Volvo',1993,11.0112,'kilometres_per_litre',72060),('Volvo 1994','Volvo',1994,10.9262,'kilometres_per_litre',79707),('Volvo 1995','Volvo',1995,11.0537,'kilometres_per_litre',85009),('Volvo 1996','Volvo',1996,11.0963,'kilometres_per_litre',79065),('Volvo 1997','Volvo',1997,10.9687,'kilometres_per_litre',60731),('Volvo 1998','Volvo',1998,10.8837,'kilometres_per_litre',102288),('Volvo 1999','Volvo',1999,8.89227,'kilometres_per_litre',NULL),('Volvo 2000','Volvo',2000,8.85926,'kilometres_per_litre',NULL),('Volvo 2001','Volvo',2001,9.12035,'kilometres_per_litre',NULL),('Volvo 2002','Volvo',2002,9.1014,'kilometres_per_litre',NULL),('Volvo 2003','Volvo',2003,8.908,'kilometres_per_litre',NULL),('Volvo 2004','Volvo',2004,8.95719,'kilometres_per_litre',NULL),('Volvo 2005','Volvo',2005,8.99189,'kilometres_per_litre',NULL),('Volvo 2006','Volvo',2006,9.11079,'kilometres_per_litre',NULL),('Volvo 2007','Volvo',2007,8.93383,'kilometres_per_litre',NULL),('Volvo 2008','Volvo',2008,9.13992,'kilometres_per_litre',NULL),('Volvo 2009','Volvo',2009,9.12173,'kilometres_per_litre',NULL),('Volvo 2010','Volvo',2010,9.23373,'kilometres_per_litre',NULL),('Yugo 1986','Yugo',1986,13.6471,'kilometres_per_litre',35671),('Yugo 1987','Yugo',1987,14.4124,'kilometres_per_litre',48753),('Yugo 1988','Yugo',1988,14.4549,'kilometres_per_litre',42543),('Yugo 1989','Yugo',1989,14.5824,'kilometres_per_litre',2704),('Yugo 1990','Yugo',1990,14.4549,'kilometres_per_litre',1117);
43 | /*!40000 ALTER TABLE `automobile_make_years` ENABLE KEYS */;
44 | UNLOCK TABLES;
45 | /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
46 |
47 | /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
48 | /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
49 | /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
50 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
51 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
52 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
53 | /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
54 |
55 | -- Dump completed on 2011-02-08 8:56:16
56 |
--------------------------------------------------------------------------------