upsert 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -90,8 +90,18 @@ class Upsert
90
90
  [ insert_part, '(', all_value_sql.join('),('), ')', update_part ].join
91
91
  end
92
92
 
93
+ # since setting an option like :as => :hash actually persists that option to the client, don't pass any options
93
94
  def max_sql_bytesize
94
- @max_sql_bytesize ||= connection.query("SHOW VARIABLES LIKE 'max_allowed_packet'", :as => :hash).first['Value'].to_i
95
+ @max_sql_bytesize ||= begin
96
+ case (row = connection.query("SHOW VARIABLES LIKE 'max_allowed_packet'").first)
97
+ when Array
98
+ row[1]
99
+ when Hash
100
+ row['Value']
101
+ else
102
+ raise "Don't know what to do if connection.query returns a #{row.class}"
103
+ end.to_i
104
+ end
95
105
  end
96
106
 
97
107
  def quoted_value_bytesize(v)
@@ -110,6 +120,8 @@ class Upsert
110
120
  v.to_s.bytesize
111
121
  when String
112
122
  v.bytesize + 2
123
+ when Symbol
124
+ v.to_s.bytesize + 2
113
125
  when Time, DateTime
114
126
  24 + 2
115
127
  when Date
@@ -1,3 +1,3 @@
1
1
  class Upsert
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -5,16 +5,16 @@ ActiveRecord::Base.establish_connection :adapter => 'mysql2', :username => 'root
5
5
 
6
6
  describe "using an ActiveRecord connection adapter" do
7
7
  before do
8
+ @opened_connections = []
8
9
  ActiveRecord::Base.connection.drop_table(Pet.table_name) rescue nil
9
10
  Pet.auto_upgrade!
10
- @opened_connections = []
11
11
  @connection = new_connection
12
12
  end
13
13
  after do
14
- @opened_connections.each { |c| ActiveRecord::Base.connection_pool.checkin(c) }
14
+ @opened_connections.clear
15
15
  end
16
16
  def new_connection
17
- c = ActiveRecord::Base.connection_pool.checkout
17
+ c = Pet.connection
18
18
  @opened_connections << c
19
19
  c
20
20
  end
data/test/test_mysql2.rb CHANGED
@@ -6,9 +6,9 @@ ActiveRecord::Base.establish_connection :adapter => 'mysql2', :username => 'root
6
6
 
7
7
  describe "upserting on mysql2" do
8
8
  before do
9
+ @opened_connections = []
9
10
  ActiveRecord::Base.connection.drop_table(Pet.table_name) rescue nil
10
11
  Pet.auto_upgrade!
11
- @opened_connections = []
12
12
  @connection = new_connection
13
13
  end
14
14
  after do
data/test/test_pg.rb CHANGED
@@ -7,9 +7,9 @@ ActiveRecord::Base.establish_connection :adapter => 'postgresql', :database => '
7
7
 
8
8
  describe "upserting on postgresql" do
9
9
  before do
10
+ @opened_connections = []
10
11
  ActiveRecord::Base.connection.drop_table(Pet.table_name) rescue nil
11
12
  Pet.auto_upgrade!
12
- @opened_connections = []
13
13
  @connection = new_connection
14
14
  end
15
15
  after do
data/test/test_sqlite.rb CHANGED
@@ -8,9 +8,9 @@ ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => db_p
8
8
 
9
9
  describe "upserting on sqlite" do
10
10
  before do
11
+ @opened_connections = []
11
12
  ActiveRecord::Base.connection.drop_table(Pet.table_name) rescue nil
12
13
  Pet.auto_upgrade!
13
- @opened_connections = []
14
14
  @connection = new_connection
15
15
  end
16
16
  after do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upsert
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: