baza 0.0.34 → 0.0.38
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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +13 -0
- data/.ruby-version +1 -1
- data/Gemfile +2 -2
- data/Gemfile.lock +45 -46
- data/VERSION +1 -1
- data/baza.gemspec +32 -51
- data/lib/baza/base_sql_driver.rb +38 -8
- data/lib/baza/cloner.rb +10 -0
- data/lib/baza/commands/select.rb +15 -8
- data/lib/baza/db.rb +8 -4
- data/lib/baza/driver/active_record/result.rb +3 -1
- data/lib/baza/driver/active_record.rb +7 -0
- data/lib/baza/driver/mysql/column.rb +4 -6
- data/lib/baza/driver/mysql/columns.rb +4 -4
- data/lib/baza/driver/mysql/database.rb +4 -4
- data/lib/baza/driver/mysql/databases.rb +5 -5
- data/lib/baza/driver/mysql/foreign_key.rb +2 -2
- data/lib/baza/driver/mysql/index.rb +1 -1
- data/lib/baza/driver/mysql/sql/column.rb +4 -4
- data/lib/baza/driver/mysql/sql/create_indexes.rb +3 -3
- data/lib/baza/driver/mysql/sql/create_table.rb +1 -1
- data/lib/baza/driver/mysql/table.rb +16 -16
- data/lib/baza/driver/mysql_java.rb +3 -3
- data/lib/baza/driver/pg/column.rb +5 -13
- data/lib/baza/driver/pg/columns.rb +4 -4
- data/lib/baza/driver/pg/create_index_sql_creator.rb +3 -3
- data/lib/baza/driver/pg/database.rb +4 -4
- data/lib/baza/driver/pg/databases.rb +1 -1
- data/lib/baza/driver/pg/foreign_key.rb +2 -2
- data/lib/baza/driver/pg/index.rb +1 -1
- data/lib/baza/driver/pg/table.rb +13 -13
- data/lib/baza/driver/pg/tables.rb +1 -1
- data/lib/baza/driver/pg.rb +1 -1
- data/lib/baza/driver/sqlite3/column.rb +1 -1
- data/lib/baza/driver/sqlite3/columns.rb +1 -1
- data/lib/baza/driver/sqlite3/index.rb +1 -1
- data/lib/baza/driver/sqlite3/table.rb +4 -4
- data/lib/baza/driver/sqlite3_java/database.rb +1 -1
- data/lib/baza/driver/tiny/result.rb +19 -2
- data/lib/baza/driver/tiny.rb +84 -10
- data/lib/baza/idquery.rb +3 -3
- data/lib/baza/mysql_base_driver.rb +3 -3
- data/lib/baza/query_buffer.rb +1 -1
- data/lib/baza/sql_queries/generic_insert.rb +3 -3
- data/lib/baza/sql_queries/generic_update.rb +2 -2
- data/lib/baza/sql_queries/mysql_upsert.rb +5 -5
- data/lib/baza/sql_queries/mysql_upsert_duplicate_key.rb +3 -3
- data/lib/baza/sql_queries/postgres_upsert_duplicate_key.rb +7 -7
- data/lib/baza/sql_queries/select.rb +8 -8
- data/lib/baza/sql_queries/sqlite_upsert_duplicate_key.rb +6 -6
- data/lib/baza/table.rb +3 -3
- data/peak_flow.yml +21 -3
- data/spec/baza/cloner_spec.rb +2 -2
- data/spec/drivers/pg/table_spec.rb +20 -0
- data/spec/drivers/tiny_spec.rb +27 -0
- data/spec/info_active_record_mysql2_peak_flow.rb +3 -2
- data/spec/info_active_record_mysql_peak_flow.rb +3 -2
- data/spec/info_active_record_pg_peak_flow.rb +5 -3
- data/spec/info_active_record_sqlite3.rb +6 -13
- data/spec/info_mysql2_peak_flow.rb +2 -1
- data/spec/info_mysql_peak_flow.rb +2 -1
- data/spec/info_pg_peak_flow.rb +3 -1
- data/spec/info_sqlite3.rb +3 -12
- data/spec/spec_helper.rb +1 -0
- data/spec/support/driver_collection.rb +1 -1
- metadata +14 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a023d1752c079d9018cb06a5bdeaac2e86ecfc0734983a81db8e0212eae3e781
|
|
4
|
+
data.tar.gz: 1435ebdda514818695aff2314609a8a05e0bc021cff3cd5650c3bb69fe9bbeb2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 100e78cf3b0f1c84e45049260190e2d3e134a4f47b62b50df2955a6aa0fb85adde9fcf4a36c797480359473a81b3845a97c99e26f07432f8901a6b045622d581
|
|
7
|
+
data.tar.gz: 330e48088ea16f46d78f685e0238882b2b7acf4497e18d80b020790fcc01b78fd62168cf53364f01f149d6befdcf5f6ee5796100aae8884a7c1ccec4e88410aa
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.7.4
|
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"
|
|
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"
|
|
@@ -28,5 +28,5 @@ group :development, :test do
|
|
|
28
28
|
gem "rdoc"
|
|
29
29
|
gem "rspec", "3.4.0"
|
|
30
30
|
gem "rubocop", "0.39.0", require: false
|
|
31
|
-
gem "sqlite3", platform: :ruby
|
|
31
|
+
gem "sqlite3", "< 1.5", platform: :ruby
|
|
32
32
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
activemodel (4.
|
|
5
|
-
activesupport (= 4.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
|
18
|
-
tzinfo (~> 1.1)
|
|
4
|
+
activemodel (6.1.4.1)
|
|
5
|
+
activesupport (= 6.1.4.1)
|
|
6
|
+
activerecord (6.1.4.1)
|
|
7
|
+
activemodel (= 6.1.4.1)
|
|
8
|
+
activesupport (= 6.1.4.1)
|
|
9
|
+
activerecord-jdbc-adapter (61.1-java)
|
|
10
|
+
activerecord (~> 6.1.0)
|
|
11
|
+
activesupport (6.1.4.1)
|
|
12
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
13
|
+
i18n (>= 1.6, < 2)
|
|
14
|
+
minitest (>= 5.1)
|
|
15
|
+
tzinfo (~> 2.0)
|
|
16
|
+
zeitwerk (~> 2.3)
|
|
19
17
|
addressable (2.4.0)
|
|
20
|
-
arel (6.0.4)
|
|
21
18
|
array_enumerator (0.0.10)
|
|
22
19
|
ast (2.4.0)
|
|
23
20
|
auto_autoloader (0.0.5)
|
|
@@ -25,9 +22,8 @@ GEM
|
|
|
25
22
|
best_practice_project (0.0.9)
|
|
26
23
|
auto_autoloader
|
|
27
24
|
builder (3.2.3)
|
|
28
|
-
coderay (1.1.
|
|
29
|
-
concurrent-ruby (1.
|
|
30
|
-
concurrent-ruby (1.0.5-java)
|
|
25
|
+
coderay (1.1.3)
|
|
26
|
+
concurrent-ruby (1.1.9)
|
|
31
27
|
datet (0.0.25)
|
|
32
28
|
descendants_tracker (0.0.4)
|
|
33
29
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
@@ -35,7 +31,7 @@ GEM
|
|
|
35
31
|
event_handler (0.0.0)
|
|
36
32
|
faraday (0.9.2)
|
|
37
33
|
multipart-post (>= 1.2, < 3)
|
|
38
|
-
ffi (1.
|
|
34
|
+
ffi (1.15.0-java)
|
|
39
35
|
git (1.3.0)
|
|
40
36
|
github_api (0.16.0)
|
|
41
37
|
addressable (~> 2.4.0)
|
|
@@ -46,11 +42,11 @@ GEM
|
|
|
46
42
|
oauth2 (~> 1.0)
|
|
47
43
|
hashie (3.5.7)
|
|
48
44
|
highline (1.7.10)
|
|
49
|
-
i18n (
|
|
45
|
+
i18n (1.8.10)
|
|
50
46
|
concurrent-ruby (~> 1.0)
|
|
51
47
|
jar-dependencies (0.3.12)
|
|
52
|
-
jdbc-mysql (
|
|
53
|
-
jdbc-sqlite3 (3.
|
|
48
|
+
jdbc-mysql (8.0.17)
|
|
49
|
+
jdbc-sqlite3 (3.28.0)
|
|
54
50
|
jeweler (2.3.9)
|
|
55
51
|
builder
|
|
56
52
|
bundler
|
|
@@ -62,20 +58,20 @@ GEM
|
|
|
62
58
|
rake
|
|
63
59
|
rdoc
|
|
64
60
|
semver2
|
|
65
|
-
json (1.8.6)
|
|
66
|
-
json (1.8.6-java)
|
|
67
61
|
jwt (1.5.6)
|
|
68
|
-
method_source (0.
|
|
62
|
+
method_source (1.0.0)
|
|
69
63
|
mime-types (2.99.3)
|
|
70
|
-
mini_portile2 (2.
|
|
71
|
-
minitest (5.
|
|
64
|
+
mini_portile2 (2.6.1)
|
|
65
|
+
minitest (5.14.4)
|
|
72
66
|
multi_json (1.13.1)
|
|
73
67
|
multi_xml (0.6.0)
|
|
74
68
|
multipart-post (2.0.0)
|
|
75
69
|
mysql2 (0.4.10)
|
|
76
|
-
nokogiri (1.
|
|
77
|
-
mini_portile2 (~> 2.
|
|
78
|
-
|
|
70
|
+
nokogiri (1.12.5)
|
|
71
|
+
mini_portile2 (~> 2.6.1)
|
|
72
|
+
racc (~> 1.4)
|
|
73
|
+
nokogiri (1.12.5-java)
|
|
74
|
+
racc (~> 1.4)
|
|
79
75
|
oauth2 (1.4.0)
|
|
80
76
|
faraday (>= 0.8, < 0.13)
|
|
81
77
|
jwt (~> 1.0)
|
|
@@ -86,21 +82,23 @@ GEM
|
|
|
86
82
|
ast (~> 2.4.0)
|
|
87
83
|
pg (0.21.0)
|
|
88
84
|
powerpack (0.1.1)
|
|
89
|
-
pry (0.
|
|
90
|
-
coderay (~> 1.1
|
|
91
|
-
method_source (~>
|
|
92
|
-
pry (0.
|
|
93
|
-
coderay (~> 1.1
|
|
94
|
-
method_source (~>
|
|
85
|
+
pry (0.14.1)
|
|
86
|
+
coderay (~> 1.1)
|
|
87
|
+
method_source (~> 1.0)
|
|
88
|
+
pry (0.14.1-java)
|
|
89
|
+
coderay (~> 1.1)
|
|
90
|
+
method_source (~> 1.0)
|
|
95
91
|
spoon (~> 0.0)
|
|
96
92
|
psych (3.0.2)
|
|
97
93
|
psych (3.0.2-java)
|
|
98
94
|
jar-dependencies (>= 0.1.7)
|
|
99
|
-
|
|
95
|
+
racc (1.5.2)
|
|
96
|
+
racc (1.5.2-java)
|
|
97
|
+
rack (2.2.3)
|
|
100
98
|
rainbow (2.2.2)
|
|
101
99
|
rake
|
|
102
|
-
rake (
|
|
103
|
-
rdoc (6.
|
|
100
|
+
rake (13.0.1)
|
|
101
|
+
rdoc (6.3.2)
|
|
104
102
|
rspec (3.4.0)
|
|
105
103
|
rspec-core (~> 3.4.0)
|
|
106
104
|
rspec-expectations (~> 3.4.0)
|
|
@@ -125,21 +123,22 @@ GEM
|
|
|
125
123
|
simple_delegate (0.0.2)
|
|
126
124
|
spoon (0.0.6)
|
|
127
125
|
ffi
|
|
128
|
-
sqlite3 (1.
|
|
126
|
+
sqlite3 (1.4.2)
|
|
129
127
|
string-cases (0.0.4)
|
|
130
128
|
thread_safe (0.3.6)
|
|
131
129
|
thread_safe (0.3.6-java)
|
|
132
|
-
tzinfo (
|
|
133
|
-
|
|
130
|
+
tzinfo (2.0.4)
|
|
131
|
+
concurrent-ruby (~> 1.0)
|
|
134
132
|
unicode-display_width (1.3.0)
|
|
135
133
|
wref (0.0.8)
|
|
134
|
+
zeitwerk (2.4.2)
|
|
136
135
|
|
|
137
136
|
PLATFORMS
|
|
138
137
|
java
|
|
139
138
|
ruby
|
|
140
139
|
|
|
141
140
|
DEPENDENCIES
|
|
142
|
-
activerecord
|
|
141
|
+
activerecord
|
|
143
142
|
activerecord-jdbc-adapter
|
|
144
143
|
array_enumerator (~> 0.0.10)
|
|
145
144
|
auto_autoloader (~> 0.0.5)
|
|
@@ -157,9 +156,9 @@ DEPENDENCIES
|
|
|
157
156
|
rspec (= 3.4.0)
|
|
158
157
|
rubocop (= 0.39.0)
|
|
159
158
|
simple_delegate (~> 0.0.2)
|
|
160
|
-
sqlite3
|
|
159
|
+
sqlite3 (< 1.5)
|
|
161
160
|
string-cases (~> 0.0.4)
|
|
162
161
|
wref (~> 0.0.8)
|
|
163
162
|
|
|
164
163
|
BUNDLED WITH
|
|
165
|
-
|
|
164
|
+
2.2.28
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
1
|
+
0.0.38
|
data/baza.gemspec
CHANGED
|
@@ -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.
|
|
5
|
+
# stub: baza 0.0.38 ruby lib
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "baza".freeze
|
|
9
|
-
s.version = "0.0.
|
|
9
|
+
s.version = "0.0.38"
|
|
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 = "
|
|
14
|
+
s.date = "2021-10-04"
|
|
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 = [
|
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
|
|
|
20
20
|
]
|
|
21
21
|
s.files = [
|
|
22
22
|
".document",
|
|
23
|
+
".github/dependabot.yml",
|
|
23
24
|
".rspec",
|
|
24
25
|
".rubocop.yml",
|
|
25
26
|
".rubocop_todo.yml",
|
|
@@ -175,8 +176,10 @@ Gem::Specification.new do |s|
|
|
|
175
176
|
"spec/drivers/mysql2_spec.rb",
|
|
176
177
|
"spec/drivers/mysql_spec.rb",
|
|
177
178
|
"spec/drivers/pg/columns_spec.rb",
|
|
179
|
+
"spec/drivers/pg/table_spec.rb",
|
|
178
180
|
"spec/drivers/pg_spec.rb",
|
|
179
181
|
"spec/drivers/sqlite3_spec.rb",
|
|
182
|
+
"spec/drivers/tiny_spec.rb",
|
|
180
183
|
"spec/info_active_record_example.rb",
|
|
181
184
|
"spec/info_active_record_mysql2_example.rb",
|
|
182
185
|
"spec/info_active_record_mysql2_peak_flow.rb",
|
|
@@ -205,57 +208,35 @@ Gem::Specification.new do |s|
|
|
|
205
208
|
]
|
|
206
209
|
s.homepage = "http://github.com/kaspernj/baza".freeze
|
|
207
210
|
s.licenses = ["MIT".freeze]
|
|
208
|
-
s.rubygems_version = "
|
|
211
|
+
s.rubygems_version = "3.1.6".freeze
|
|
209
212
|
s.summary = "A database abstraction layer, model framework and database framework.".freeze
|
|
210
213
|
|
|
211
214
|
if s.respond_to? :specification_version then
|
|
212
215
|
s.specification_version = 4
|
|
216
|
+
end
|
|
213
217
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
else
|
|
237
|
-
s.add_dependency(%q<array_enumerator>.freeze, ["~> 0.0.10"])
|
|
238
|
-
s.add_dependency(%q<auto_autoloader>.freeze, ["~> 0.0.5"])
|
|
239
|
-
s.add_dependency(%q<datet>.freeze, ["~> 0.0.25"])
|
|
240
|
-
s.add_dependency(%q<event_handler>.freeze, ["~> 0.0.0"])
|
|
241
|
-
s.add_dependency(%q<simple_delegate>.freeze, ["~> 0.0.2"])
|
|
242
|
-
s.add_dependency(%q<string-cases>.freeze, ["~> 0.0.4"])
|
|
243
|
-
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-jdbc-adapter>.freeze, [">= 0"])
|
|
246
|
-
s.add_dependency(%q<best_practice_project>.freeze, ["= 0.0.9"])
|
|
247
|
-
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
|
248
|
-
s.add_dependency(%q<jdbc-mysql>.freeze, [">= 0"])
|
|
249
|
-
s.add_dependency(%q<jdbc-sqlite3>.freeze, [">= 0"])
|
|
250
|
-
s.add_dependency(%q<jeweler>.freeze, ["= 2.3.9"])
|
|
251
|
-
s.add_dependency(%q<mysql2>.freeze, ["= 0.4.10"])
|
|
252
|
-
s.add_dependency(%q<pg>.freeze, ["= 0.21.0"])
|
|
253
|
-
s.add_dependency(%q<pry>.freeze, [">= 0"])
|
|
254
|
-
s.add_dependency(%q<rdoc>.freeze, [">= 0"])
|
|
255
|
-
s.add_dependency(%q<rspec>.freeze, ["= 3.4.0"])
|
|
256
|
-
s.add_dependency(%q<rubocop>.freeze, ["= 0.39.0"])
|
|
257
|
-
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
|
258
|
-
end
|
|
218
|
+
if s.respond_to? :add_runtime_dependency then
|
|
219
|
+
s.add_runtime_dependency(%q<array_enumerator>.freeze, ["~> 0.0.10"])
|
|
220
|
+
s.add_runtime_dependency(%q<auto_autoloader>.freeze, ["~> 0.0.5"])
|
|
221
|
+
s.add_runtime_dependency(%q<datet>.freeze, ["~> 0.0.25"])
|
|
222
|
+
s.add_runtime_dependency(%q<event_handler>.freeze, ["~> 0.0.0"])
|
|
223
|
+
s.add_runtime_dependency(%q<simple_delegate>.freeze, ["~> 0.0.2"])
|
|
224
|
+
s.add_runtime_dependency(%q<string-cases>.freeze, ["~> 0.0.4"])
|
|
225
|
+
s.add_runtime_dependency(%q<wref>.freeze, ["~> 0.0.8"])
|
|
226
|
+
s.add_development_dependency(%q<activerecord>.freeze, [">= 0"])
|
|
227
|
+
s.add_development_dependency(%q<activerecord-jdbc-adapter>.freeze, [">= 0"])
|
|
228
|
+
s.add_development_dependency(%q<best_practice_project>.freeze, ["= 0.0.9"])
|
|
229
|
+
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
|
|
230
|
+
s.add_development_dependency(%q<jdbc-mysql>.freeze, [">= 0"])
|
|
231
|
+
s.add_development_dependency(%q<jdbc-sqlite3>.freeze, [">= 0"])
|
|
232
|
+
s.add_development_dependency(%q<jeweler>.freeze, ["= 2.3.9"])
|
|
233
|
+
s.add_development_dependency(%q<mysql2>.freeze, ["= 0.4.10"])
|
|
234
|
+
s.add_development_dependency(%q<pg>.freeze, ["= 0.21.0"])
|
|
235
|
+
s.add_development_dependency(%q<pry>.freeze, [">= 0"])
|
|
236
|
+
s.add_development_dependency(%q<rdoc>.freeze, [">= 0"])
|
|
237
|
+
s.add_development_dependency(%q<rspec>.freeze, ["= 3.4.0"])
|
|
238
|
+
s.add_development_dependency(%q<rubocop>.freeze, ["= 0.39.0"])
|
|
239
|
+
s.add_development_dependency(%q<sqlite3>.freeze, ["< 1.5"])
|
|
259
240
|
else
|
|
260
241
|
s.add_dependency(%q<array_enumerator>.freeze, ["~> 0.0.10"])
|
|
261
242
|
s.add_dependency(%q<auto_autoloader>.freeze, ["~> 0.0.5"])
|
|
@@ -264,7 +245,7 @@ Gem::Specification.new do |s|
|
|
|
264
245
|
s.add_dependency(%q<simple_delegate>.freeze, ["~> 0.0.2"])
|
|
265
246
|
s.add_dependency(%q<string-cases>.freeze, ["~> 0.0.4"])
|
|
266
247
|
s.add_dependency(%q<wref>.freeze, ["~> 0.0.8"])
|
|
267
|
-
s.add_dependency(%q<activerecord>.freeze, ["
|
|
248
|
+
s.add_dependency(%q<activerecord>.freeze, [">= 0"])
|
|
268
249
|
s.add_dependency(%q<activerecord-jdbc-adapter>.freeze, [">= 0"])
|
|
269
250
|
s.add_dependency(%q<best_practice_project>.freeze, ["= 0.0.9"])
|
|
270
251
|
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
|
@@ -277,7 +258,7 @@ Gem::Specification.new do |s|
|
|
|
277
258
|
s.add_dependency(%q<rdoc>.freeze, [">= 0"])
|
|
278
259
|
s.add_dependency(%q<rspec>.freeze, ["= 3.4.0"])
|
|
279
260
|
s.add_dependency(%q<rubocop>.freeze, ["= 0.39.0"])
|
|
280
|
-
s.add_dependency(%q<sqlite3>.freeze, ["
|
|
261
|
+
s.add_dependency(%q<sqlite3>.freeze, ["< 1.5"])
|
|
281
262
|
end
|
|
282
263
|
end
|
|
283
264
|
|
data/lib/baza/base_sql_driver.rb
CHANGED
|
@@ -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 #{
|
|
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 #{
|
|
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 << "#{
|
|
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 << "#{
|
|
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.
|
|
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
|
|
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
|
data/lib/baza/cloner.rb
CHANGED
|
@@ -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}"
|
data/lib/baza/commands/select.rb
CHANGED
|
@@ -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.
|
|
39
|
+
select_sql = "#{@db.quote_column(:id)}"
|
|
40
40
|
@col = :id
|
|
41
41
|
else
|
|
42
|
-
select_sql = "#{@db.
|
|
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
|
|
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 << " #{@
|
|
53
|
+
@sql << " #{@db.quote_table(@table_name.first)}.#{@db.quote_table(@table_name.last)}"
|
|
52
54
|
else
|
|
53
|
-
@sql << " #{@
|
|
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.
|
|
74
|
+
@sql << " #{@db.quote_column(order_by)}"
|
|
73
75
|
end
|
|
74
76
|
else
|
|
75
|
-
@sql << " #{@db.
|
|
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]
|
data/lib/baza/db.rb
CHANGED
|
@@ -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
|
|
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
|
-
@
|
|
447
|
+
@driver.class.name.downcase.include?("sqlite")
|
|
448
448
|
end
|
|
449
449
|
|
|
450
450
|
def mysql?
|
|
451
|
-
@
|
|
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
|
-
@
|
|
459
|
+
@driver.class.name.downcase.include?("pg")
|
|
456
460
|
end
|
|
457
461
|
end
|
|
@@ -14,7 +14,9 @@ class Baza::Driver::ActiveRecord::Result < Baza::ResultBase
|
|
|
14
14
|
return unless @result
|
|
15
15
|
|
|
16
16
|
@result.each do |result|
|
|
17
|
-
|
|
17
|
+
# Seems like this happens depending on the version installed? - kaspernj
|
|
18
|
+
result = result.delete_if { |k, _v| k.class.name == "Integer" || k.class.name == "Fixnum" }
|
|
19
|
+
|
|
18
20
|
result = Hash[result.map { |k, v| [k, v.to_s] }] if @type_translation == :string
|
|
19
21
|
|
|
20
22
|
yield result.symbolize_keys
|
|
@@ -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.
|
|
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
|
|
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
|
|
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 #{
|
|
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
|