baza 0.0.35 → 0.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +14 -17
  4. data/VERSION +1 -1
  5. data/baza.gemspec +8 -7
  6. data/lib/baza/base_sql_driver.rb +38 -8
  7. data/lib/baza/cloner.rb +10 -0
  8. data/lib/baza/commands/select.rb +15 -8
  9. data/lib/baza/db.rb +8 -4
  10. data/lib/baza/driver/active_record.rb +7 -0
  11. data/lib/baza/driver/mysql/column.rb +4 -6
  12. data/lib/baza/driver/mysql/columns.rb +4 -4
  13. data/lib/baza/driver/mysql/database.rb +4 -4
  14. data/lib/baza/driver/mysql/databases.rb +3 -3
  15. data/lib/baza/driver/mysql/foreign_key.rb +2 -2
  16. data/lib/baza/driver/mysql/index.rb +1 -1
  17. data/lib/baza/driver/mysql/sql/column.rb +4 -4
  18. data/lib/baza/driver/mysql/sql/create_indexes.rb +3 -3
  19. data/lib/baza/driver/mysql/sql/create_table.rb +1 -1
  20. data/lib/baza/driver/mysql/table.rb +16 -16
  21. data/lib/baza/driver/mysql_java.rb +3 -3
  22. data/lib/baza/driver/pg/column.rb +5 -13
  23. data/lib/baza/driver/pg/columns.rb +4 -4
  24. data/lib/baza/driver/pg/create_index_sql_creator.rb +3 -3
  25. data/lib/baza/driver/pg/database.rb +4 -4
  26. data/lib/baza/driver/pg/databases.rb +1 -1
  27. data/lib/baza/driver/pg/foreign_key.rb +2 -2
  28. data/lib/baza/driver/pg/index.rb +1 -1
  29. data/lib/baza/driver/pg/table.rb +9 -9
  30. data/lib/baza/driver/pg/tables.rb +1 -1
  31. data/lib/baza/driver/sqlite3/column.rb +1 -1
  32. data/lib/baza/driver/sqlite3/columns.rb +1 -1
  33. data/lib/baza/driver/sqlite3/index.rb +1 -1
  34. data/lib/baza/driver/sqlite3/table.rb +4 -4
  35. data/lib/baza/driver/tiny.rb +83 -8
  36. data/lib/baza/driver/tiny/result.rb +18 -2
  37. data/lib/baza/idquery.rb +3 -3
  38. data/lib/baza/mysql_base_driver.rb +3 -3
  39. data/lib/baza/sql_queries/generic_insert.rb +3 -3
  40. data/lib/baza/sql_queries/generic_update.rb +2 -2
  41. data/lib/baza/sql_queries/mysql_upsert.rb +5 -5
  42. data/lib/baza/sql_queries/mysql_upsert_duplicate_key.rb +3 -3
  43. data/lib/baza/sql_queries/postgres_upsert_duplicate_key.rb +7 -7
  44. data/lib/baza/sql_queries/select.rb +8 -8
  45. data/lib/baza/sql_queries/sqlite_upsert_duplicate_key.rb +6 -6
  46. data/lib/baza/table.rb +3 -3
  47. data/spec/baza/cloner_spec.rb +2 -2
  48. data/spec/drivers/tiny_spec.rb +27 -0
  49. data/spec/info_active_record_pg_peak_flow.rb +2 -2
  50. data/spec/info_active_record_sqlite3.rb +6 -13
  51. data/spec/info_sqlite3.rb +3 -12
  52. metadata +8 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 804414d008ce0e9a5a646b6695bbc7f8ff8b600de5aa2ccdac510f84a5d1825e
4
- data.tar.gz: 01451d46fa3526121580179cc9da56faea6d1136a7a6af50ef4c0e3338644a1f
2
+ SHA1:
3
+ metadata.gz: fae6535d9e34fae8460213071209a7657c8dbe97
4
+ data.tar.gz: a3289f1628a01ca32000f3d9e96beef9033b00f8
5
5
  SHA512:
6
- metadata.gz: 4e8624039a6c7f49c6d82152812c1431073d18dd89f7f53e4bbcc69b7554a732c74f1b42b2b637b069528dec8dae30f54e3eec50bd0b6d5d828c810f4f4fc9ee
7
- data.tar.gz: 4bb221beb8543c0ded092a713b22e15d4fa31add722297f403ba0d355d0467d9e43cd613746651968c5ab820f6886c3736ebc916c31103eee8d9c5be300e59e0
6
+ metadata.gz: 5a71d39ad1ba7a1b682a0b88800567ced7e94cfe3e489049f00e09b0dd8383645eca9ab04e45f68e8c3abf14e35b596efe5a58d8da647054c65b25b26bbee6f1
7
+ data.tar.gz: 1e5ec98de5eef606d1f483d67109a8563ca8bb65e9d52cff3c25e2cecd8eca809611552790ad9826b2499eca8ccbbebd831ed6000485b4349b260fb6ba43f9a2
data/Gemfile CHANGED
@@ -14,7 +14,7 @@ gem "wref", "~> 0.0.8"
14
14
  # Add dependencies to develop your gem here.
15
15
  # Include everything needed to run rake, tests, features, etc.
16
16
  group :development, :test do
17
- gem "activerecord", "4.2.5"
17
+ gem "activerecord"
18
18
  gem "activerecord-jdbc-adapter", platform: :jruby
19
19
  gem "best_practice_project", "0.0.9", require: false
20
20
  gem "bundler"
@@ -1,23 +1,21 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (4.2.5)
5
- activesupport (= 4.2.5)
6
- builder (~> 3.1)
7
- activerecord (4.2.5)
8
- activemodel (= 4.2.5)
9
- activesupport (= 4.2.5)
10
- arel (~> 6.0)
4
+ activemodel (5.2.0)
5
+ activesupport (= 5.2.0)
6
+ activerecord (5.2.0)
7
+ activemodel (= 5.2.0)
8
+ activesupport (= 5.2.0)
9
+ arel (>= 9.0)
11
10
  activerecord-jdbc-adapter (50.0)
12
11
  activerecord (>= 2.2)
13
- activesupport (4.2.5)
14
- i18n (~> 0.7)
15
- json (~> 1.7, >= 1.7.7)
12
+ activesupport (5.2.0)
13
+ concurrent-ruby (~> 1.0, >= 1.0.2)
14
+ i18n (>= 0.7, < 2)
16
15
  minitest (~> 5.1)
17
- thread_safe (~> 0.3, >= 0.3.4)
18
16
  tzinfo (~> 1.1)
19
17
  addressable (2.4.0)
20
- arel (6.0.4)
18
+ arel (9.0.0)
21
19
  array_enumerator (0.0.10)
22
20
  ast (2.4.0)
23
21
  auto_autoloader (0.0.5)
@@ -35,6 +33,7 @@ GEM
35
33
  event_handler (0.0.0)
36
34
  faraday (0.9.2)
37
35
  multipart-post (>= 1.2, < 3)
36
+ ffi (1.9.23)
38
37
  ffi (1.9.23-java)
39
38
  git (1.3.0)
40
39
  github_api (0.16.0)
@@ -46,7 +45,7 @@ GEM
46
45
  oauth2 (~> 1.0)
47
46
  hashie (3.5.7)
48
47
  highline (1.7.10)
49
- i18n (0.9.5)
48
+ i18n (1.0.1)
50
49
  concurrent-ruby (~> 1.0)
51
50
  jar-dependencies (0.3.12)
52
51
  jdbc-mysql (5.1.44)
@@ -62,8 +61,6 @@ GEM
62
61
  rake
63
62
  rdoc
64
63
  semver2
65
- json (1.8.6)
66
- json (1.8.6-java)
67
64
  jwt (1.5.6)
68
65
  method_source (0.9.0)
69
66
  mime-types (2.99.3)
@@ -139,7 +136,7 @@ PLATFORMS
139
136
  ruby
140
137
 
141
138
  DEPENDENCIES
142
- activerecord (= 4.2.5)
139
+ activerecord
143
140
  activerecord-jdbc-adapter
144
141
  array_enumerator (~> 0.0.10)
145
142
  auto_autoloader (~> 0.0.5)
@@ -162,4 +159,4 @@ DEPENDENCIES
162
159
  wref (~> 0.0.8)
163
160
 
164
161
  BUNDLED WITH
165
- 1.16.1
162
+ 1.16.2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.35
1
+ 0.0.36
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: baza 0.0.35 ruby lib
5
+ # stub: baza 0.0.36 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "baza".freeze
9
- s.version = "0.0.35"
9
+ s.version = "0.0.36"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Kasper Johansen".freeze]
14
- s.date = "2018-06-07"
14
+ s.date = "2018-06-27"
15
15
  s.description = "A database abstraction layer, model framework and database framework.".freeze
16
16
  s.email = "kj@gfish.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -177,6 +177,7 @@ Gem::Specification.new do |s|
177
177
  "spec/drivers/pg/columns_spec.rb",
178
178
  "spec/drivers/pg_spec.rb",
179
179
  "spec/drivers/sqlite3_spec.rb",
180
+ "spec/drivers/tiny_spec.rb",
180
181
  "spec/info_active_record_example.rb",
181
182
  "spec/info_active_record_mysql2_example.rb",
182
183
  "spec/info_active_record_mysql2_peak_flow.rb",
@@ -205,7 +206,7 @@ Gem::Specification.new do |s|
205
206
  ]
206
207
  s.homepage = "http://github.com/kaspernj/baza".freeze
207
208
  s.licenses = ["MIT".freeze]
208
- s.rubygems_version = "2.7.7".freeze
209
+ s.rubygems_version = "2.6.14".freeze
209
210
  s.summary = "A database abstraction layer, model framework and database framework.".freeze
210
211
 
211
212
  if s.respond_to? :specification_version then
@@ -219,7 +220,7 @@ Gem::Specification.new do |s|
219
220
  s.add_runtime_dependency(%q<simple_delegate>.freeze, ["~> 0.0.2"])
220
221
  s.add_runtime_dependency(%q<string-cases>.freeze, ["~> 0.0.4"])
221
222
  s.add_runtime_dependency(%q<wref>.freeze, ["~> 0.0.8"])
222
- s.add_development_dependency(%q<activerecord>.freeze, ["= 4.2.5"])
223
+ s.add_development_dependency(%q<activerecord>.freeze, [">= 0"])
223
224
  s.add_development_dependency(%q<activerecord-jdbc-adapter>.freeze, [">= 0"])
224
225
  s.add_development_dependency(%q<best_practice_project>.freeze, ["= 0.0.9"])
225
226
  s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
@@ -241,7 +242,7 @@ Gem::Specification.new do |s|
241
242
  s.add_dependency(%q<simple_delegate>.freeze, ["~> 0.0.2"])
242
243
  s.add_dependency(%q<string-cases>.freeze, ["~> 0.0.4"])
243
244
  s.add_dependency(%q<wref>.freeze, ["~> 0.0.8"])
244
- s.add_dependency(%q<activerecord>.freeze, ["= 4.2.5"])
245
+ s.add_dependency(%q<activerecord>.freeze, [">= 0"])
245
246
  s.add_dependency(%q<activerecord-jdbc-adapter>.freeze, [">= 0"])
246
247
  s.add_dependency(%q<best_practice_project>.freeze, ["= 0.0.9"])
247
248
  s.add_dependency(%q<bundler>.freeze, [">= 0"])
@@ -264,7 +265,7 @@ Gem::Specification.new do |s|
264
265
  s.add_dependency(%q<simple_delegate>.freeze, ["~> 0.0.2"])
265
266
  s.add_dependency(%q<string-cases>.freeze, ["~> 0.0.4"])
266
267
  s.add_dependency(%q<wref>.freeze, ["~> 0.0.8"])
267
- s.add_dependency(%q<activerecord>.freeze, ["= 4.2.5"])
268
+ s.add_dependency(%q<activerecord>.freeze, [">= 0"])
268
269
  s.add_dependency(%q<activerecord-jdbc-adapter>.freeze, [">= 0"])
269
270
  s.add_dependency(%q<best_practice_project>.freeze, ["= 0.0.9"])
270
271
  s.add_dependency(%q<bundler>.freeze, [">= 0"])
@@ -54,6 +54,14 @@ class Baza::BaseSqlDriver
54
54
  self.class.escape_column(string)
55
55
  end
56
56
 
57
+ def self.quote_column(column_name)
58
+ "#{SEPARATOR_COLUMN}#{escape_column(column_name)}#{SEPARATOR_COLUMN}"
59
+ end
60
+
61
+ def quote_column(column_name)
62
+ "#{sep_col}#{escape_column(column_name)}#{sep_col}"
63
+ end
64
+
57
65
  def self.escape_table(string)
58
66
  string = string.to_s
59
67
  raise "Invalid table-string: #{string}" if string.include?(SEPARATOR_TABLE)
@@ -64,6 +72,14 @@ class Baza::BaseSqlDriver
64
72
  self.class.escape_table(string)
65
73
  end
66
74
 
75
+ def self.quote_table(table_name)
76
+ "#{SEPARATOR_TABLE}#{escape_table(table_name)}#{SEPARATOR_TABLE}"
77
+ end
78
+
79
+ def quote_table(table_name)
80
+ "#{sep_table}#{escape_table(table_name)}#{sep_table}"
81
+ end
82
+
67
83
  def self.escape_database(string)
68
84
  string = string.to_s
69
85
  raise "Invalid database-string: #{string}" if string.include?(SEPARATOR_DATABASE)
@@ -74,6 +90,14 @@ class Baza::BaseSqlDriver
74
90
  self.class.escape_database(string)
75
91
  end
76
92
 
93
+ def self.quote_database(database_name)
94
+ "#{SEPARATOR_DATABASE}#{escape_database(database_name)}#{SEPARATOR_DATABASE}"
95
+ end
96
+
97
+ def quote_database(database_name)
98
+ "#{sep_database}#{escape_database(database_name)}#{sep_database}"
99
+ end
100
+
77
101
  def self.escape_index(string)
78
102
  string = string.to_s
79
103
  raise "Invalid index-string: #{string}" if string.include?(SEPARATOR_INDEX)
@@ -84,6 +108,14 @@ class Baza::BaseSqlDriver
84
108
  self.class.escape_index(string)
85
109
  end
86
110
 
111
+ def self.quote_index(index_name)
112
+ "#{SEPARATOR_INDEX}#{escape_index(index_name)}#{SEPARATOR_INDEX}"
113
+ end
114
+
115
+ def quote_index(index_name)
116
+ "#{sep_index}#{escape_index(index_name)}#{sep_index}"
117
+ end
118
+
87
119
  def transaction
88
120
  @db.q("BEGIN TRANSACTION")
89
121
 
@@ -146,7 +178,7 @@ class Baza::BaseSqlDriver
146
178
  end
147
179
 
148
180
  def count(tablename, arr_terms = nil)
149
- sql = "SELECT COUNT(*) AS count FROM #{@sep_table}#{tablename}#{@sep_table}"
181
+ sql = "SELECT COUNT(*) AS count FROM #{quote_table(tablename)}"
150
182
 
151
183
  if !arr_terms.nil? && !arr_terms.empty?
152
184
  sql << " WHERE #{sql_make_where(arr_terms)}"
@@ -169,7 +201,7 @@ class Baza::BaseSqlDriver
169
201
  #===Examples
170
202
  # db.delete(:users, {lastname: "Doe"})
171
203
  def delete(tablename, arr_terms, args = nil)
172
- sql = "DELETE FROM #{@sep_table}#{tablename}#{@sep_table}"
204
+ sql = "DELETE FROM #{quote_table(tablename)}"
173
205
 
174
206
  if !arr_terms.nil? && !arr_terms.empty?
175
207
  sql << " WHERE #{sql_make_where(arr_terms)}"
@@ -199,11 +231,11 @@ class Baza::BaseSqlDriver
199
231
  if value.is_a?(Array)
200
232
  raise "Array for column '#{key}' was empty." if value.empty?
201
233
  values = value.map { |v| "'#{escape(v)}'" }.join(",")
202
- sql << "#{@sep_col}#{key}#{@sep_col} IN (#{values})"
234
+ sql << "#{quote_column(key)} IN (#{values})"
203
235
  elsif value.is_a?(Hash)
204
236
  raise "Dont know how to handle hash."
205
237
  else
206
- sql << "#{@sep_col}#{key}#{@sep_col} = #{sqlval(value)}"
238
+ sql << "#{quote_column(key)} = #{quote_value(value)}"
207
239
  end
208
240
  end
209
241
 
@@ -213,7 +245,7 @@ class Baza::BaseSqlDriver
213
245
  # Returns the correct SQL-value for the given value.
214
246
  # If it is a number, then just the raw number as a string will be returned.
215
247
  # nil's will be NULL and strings will have quotes and will be escaped.
216
- def self.sqlval(val)
248
+ def self.quote_value(val)
217
249
  if val.class.name == "Fixnum" || val.is_a?(Integer)
218
250
  val.to_s
219
251
  elsif val == nil
@@ -227,9 +259,7 @@ class Baza::BaseSqlDriver
227
259
  end
228
260
  end
229
261
 
230
- def sqlval(val)
231
- return @conn.sqlval(val) if @conn.respond_to?(:sqlval)
232
-
262
+ def quote_value(val)
233
263
  if val.class.name == "Fixnum" || val.is_a?(Integer)
234
264
  val.to_s
235
265
  elsif val == nil
@@ -24,6 +24,16 @@ class Baza::Cloner
24
24
  conn: connection
25
25
  }
26
26
 
27
+ Baza::Db.new(db_args)
28
+ elsif connection.class.name.include?("PostgreSQLAdapter")
29
+ connection = connection.instance_variable_get(:@connection)
30
+ connection = connection.instance_variable_get(:@connection) if RUBY_PLATFORM == "java"
31
+
32
+ db_args = {
33
+ type: :pg,
34
+ conn: connection
35
+ }
36
+
27
37
  Baza::Db.new(db_args)
28
38
  else
29
39
  raise "Unsupported adapter: #{connection.class.name}"
@@ -18,7 +18,7 @@ class Baza::Commands::Select
18
18
  add_select_sql
19
19
  add_terms_sql
20
20
  add_order_sql
21
- add_limit_sql
21
+ add_limit_sql unless @db.mssql?
22
22
 
23
23
  result = execute_query
24
24
 
@@ -36,21 +36,23 @@ private
36
36
  # Set up IDQuery-stuff if that is given in arguments.
37
37
  if @args && @args[:idquery]
38
38
  if @args.fetch(:idquery) == true
39
- select_sql = "#{@db.sep_col}id#{@db.sep_col}"
39
+ select_sql = "#{@db.quote_column(:id)}"
40
40
  @col = :id
41
41
  else
42
- select_sql = "#{@db.sep_col}#{@db.escape_column(@args.fetch(:idquery))}#{@db.sep_col}"
42
+ select_sql = "#{@db.quote_column(@args.fetch(:idquery))}"
43
43
  @col = @args.fetch(:idquery)
44
44
  end
45
45
  end
46
46
 
47
47
  select_sql ||= "*"
48
- @sql << "SELECT #{select_sql} FROM"
48
+ @sql << "SELECT"
49
+ @sql << top_sql if @db.mssql?
50
+ @sql << " #{select_sql} FROM"
49
51
 
50
52
  if @table_name.is_a?(Array)
51
- @sql << " #{@sep_table}#{@table_name.first}#{@sep_table}.#{@sep_table}#{@table_name.last}#{@sep_table}"
53
+ @sql << " #{@db.quote_table(@table_name.first)}.#{@db.quote_table(@table_name.last)}"
52
54
  else
53
- @sql << " #{@sep_table}#{@table_name}#{@sep_table}"
55
+ @sql << " #{@db.quote_table(@table_name)}"
54
56
  end
55
57
  end
56
58
 
@@ -69,10 +71,10 @@ private
69
71
  @args.fetch(:orderby).each do |order_by|
70
72
  @sql << "," unless first
71
73
  first = false if first
72
- @sql << " #{@db.sep_col}#{@db.escape_column(order_by)}#{@db.sep_col}"
74
+ @sql << " #{@db.quote_column(order_by)}"
73
75
  end
74
76
  else
75
- @sql << " #{@db.sep_col}#{@db.escape_column(@args.fetch(:orderby))}#{@db.sep_col}"
77
+ @sql << " #{@db.quote_column(@args.fetch(:orderby))}"
76
78
  end
77
79
  end
78
80
  end
@@ -99,6 +101,11 @@ private
99
101
  end
100
102
  end
101
103
 
104
+ def top_sql
105
+ return unless @args[:limit]
106
+ " TOP #{@args[:limit].to_i}"
107
+ end
108
+
102
109
  def execute_query
103
110
  # Do IDQuery if given in arguments.
104
111
  if @args && @args[:idquery]
@@ -16,7 +16,7 @@ class Baza::Db
16
16
 
17
17
  delegate :last_id, :upsert, :upsert_duplicate_key, to: :commands
18
18
  delegate :current_database, :current_database_name, :with_database, to: :databases
19
- delegate :close, :count, :delete, :esc, :escape, :escape_column, :escape_table, :escape_database, :escape_index, :insert, :select, :single, :sqlval, :sql_make_where, to: :driver
19
+ delegate *%i[close count delete esc escape escape_column escape_table escape_database escape_index quote_database quote_column quote_table quote_value quote_database quote_index insert select single quote_value sql_make_where], to: :driver
20
20
 
21
21
  attr_reader :sep_database, :sep_col, :sep_table, :sep_val, :sep_index, :opts, :driver, :int_types
22
22
 
@@ -444,14 +444,18 @@ class Baza::Db
444
444
  end
445
445
 
446
446
  def sqlite?
447
- @sqlite ||= @driver.class.name.downcase.include?("sqlite")
447
+ @driver.class.name.downcase.include?("sqlite")
448
448
  end
449
449
 
450
450
  def mysql?
451
- @mysql ||= @driver.class.name.downcase.include?("mysql")
451
+ @driver.class.name.downcase.include?("mysql")
452
+ end
453
+
454
+ def mssql?
455
+ @driver.class.name.downcase.include?("tiny")
452
456
  end
453
457
 
454
458
  def postgres?
455
- @postgres ||= @driver.class.name.downcase.include?("pg")
459
+ @driver.class.name.downcase.include?("pg")
456
460
  end
457
461
  end
@@ -80,10 +80,17 @@ class Baza::Driver::ActiveRecord < Baza::BaseSqlDriver
80
80
  if conn_name.include?("mysql")
81
81
  @db.opts[:db] ||= query("SELECT DATABASE()").fetch.fetch(:"DATABASE()")
82
82
  elsif @driver_type == :pg
83
+ @conn.reconnect! unless postgres_connection_active?
83
84
  @db.opts[:db] ||= query("SELECT current_database()").fetch.values.first
84
85
  end
85
86
  end
86
87
 
88
+ def postgres_connection_active?
89
+ @conn.active?
90
+ rescue PG::ConnectionBad
91
+ true
92
+ end
93
+
87
94
  def query(sql)
88
95
  @result_constant.new(self, @conn.execute(sql))
89
96
  end
@@ -23,7 +23,7 @@ class Baza::Driver::Mysql::Column < Baza::Column
23
23
  other_table = other_column.table
24
24
 
25
25
  sql = "
26
- ALTER TABLE #{@db.escape_table(table_name)}
26
+ ALTER TABLE #{@db.quote_table(table_name)}
27
27
  ADD CONSTRAINT #{@db.escape_table(fk_name)}
28
28
  FOREIGN KEY (#{@db.escape_table(name)})
29
29
  REFERENCES #{@db.escape_table(other_table.name)} (#{@db.escape_column(other_column.name)})
@@ -39,7 +39,7 @@ class Baza::Driver::Mysql::Column < Baza::Column
39
39
  end
40
40
 
41
41
  def reload
42
- data = @db.query("SHOW FULL COLUMNS FROM `#{@db.escape_table(table_name)}` WHERE `Field` = '#{@db.esc(name)}'").fetch
42
+ data = @db.query("SHOW FULL COLUMNS FROM #{@db.quote_table(table_name)} WHERE #{@db.quote_column("Field")} = #{@db.quote_value(name)}").fetch
43
43
  raise Baza::Errors::ColumnNotFound unless data
44
44
  @data = data
45
45
  @type = nil
@@ -105,15 +105,13 @@ class Baza::Driver::Mysql::Column < Baza::Column
105
105
 
106
106
  # Drops the column from the table.
107
107
  def drop
108
- @db.query("ALTER TABLE `#{@db.escape_table(table_name)}` DROP COLUMN `#{@db.escape_column(name)}`")
108
+ @db.query("ALTER TABLE #{@db.quote_table(table_name)} DROP COLUMN #{@db.quote_column(name)}")
109
109
  table.__send__(:remove_column_from_list, self)
110
110
  nil
111
111
  end
112
112
 
113
113
  # Changes the column properties by the given hash.
114
114
  def change(data)
115
- col_escaped = "#{@db.sep_col}#{@db.escape_column(name)}#{@db.sep_col}"
116
- table_escape = "#{@db.sep_table}#{@db.escape_table(table_name)}#{@db.sep_table}"
117
115
  newdata = data.clone
118
116
 
119
117
  newdata[:name] = name unless newdata.key?(:name)
@@ -126,7 +124,7 @@ class Baza::Driver::Mysql::Column < Baza::Column
126
124
  drop_add = true if name.to_s != newdata[:name].to_s
127
125
 
128
126
  table.__send__(:remove_column_from_list, self) if drop_add
129
- @db.query("ALTER TABLE #{table_escape} CHANGE #{col_escaped} #{@db.columns.data_sql(newdata)}")
127
+ @db.query("ALTER TABLE #{@db.quote_table(table_name)} CHANGE #{@db.quote_column(name)} #{@db.columns.data_sql(newdata)}")
130
128
  @name = newdata[:name].to_s
131
129
  reload
132
130
  table.__send__(:add_column_to_list, self) if drop_add
@@ -14,7 +14,7 @@ class Baza::Driver::Mysql::Columns
14
14
 
15
15
  data[:maxlength] = 255 if type == :varchar && data[:maxlength].to_s.strip.empty?
16
16
 
17
- sql = "#{@db.sep_col}#{@db.escape_column(data.fetch(:name))}#{@db.sep_col} #{type}"
17
+ sql = "#{@db.quote_column(data.fetch(:name))} #{type}"
18
18
  sql << "(#{data[:maxlength]})" if data[:maxlength]
19
19
  sql << " PRIMARY KEY" if data[:primarykey]
20
20
  sql << " AUTO_INCREMENT" if data[:autoincr]
@@ -23,11 +23,11 @@ class Baza::Driver::Mysql::Columns
23
23
  if data.key?(:default_func)
24
24
  sql << " DEFAULT #{data[:default_func]}"
25
25
  elsif data.key?(:default) && !data[:default].nil?
26
- sql << " DEFAULT #{@db.sqlval(data.fetch(:default))}"
26
+ sql << " DEFAULT #{@db.quote_value(data.fetch(:default))}"
27
27
  end
28
28
 
29
- sql << " COMMENT '#{@db.escape(data.fetch(:comment))}'" if data.key?(:comment)
30
- sql << " AFTER #{@db.sep_col}#{@db.escape_column(data.fetch(:after))}#{@db.sep_col}" if data[:after] && !data[:first]
29
+ sql << " COMMENT #{@db.quote_value(data.fetch(:comment))}" if data.key?(:comment)
30
+ sql << " AFTER #{@db.quote_column(data.fetch(:after))}" if data[:after] && !data[:first]
31
31
  sql << " FIRST" if data[:first]
32
32
  sql << " STORAGE #{data[:storage].to_s.upcase}" if data[:storage]
33
33