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.
- checksums.yaml +5 -5
- data/Gemfile +1 -1
- data/Gemfile.lock +14 -17
- data/VERSION +1 -1
- data/baza.gemspec +8 -7
- 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.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 +3 -3
- 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 +9 -9
- data/lib/baza/driver/pg/tables.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/tiny.rb +83 -8
- data/lib/baza/driver/tiny/result.rb +18 -2
- data/lib/baza/idquery.rb +3 -3
- data/lib/baza/mysql_base_driver.rb +3 -3
- 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/spec/baza/cloner_spec.rb +2 -2
- data/spec/drivers/tiny_spec.rb +27 -0
- data/spec/info_active_record_pg_peak_flow.rb +2 -2
- data/spec/info_active_record_sqlite3.rb +6 -13
- data/spec/info_sqlite3.rb +3 -12
- metadata +8 -7
@@ -51,7 +51,7 @@ private
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def insert_sql
|
54
|
-
sql = "INSERT OR IGNORE INTO #{@db.
|
54
|
+
sql = "INSERT OR IGNORE INTO #{@db.quote_table(@table_name)} ("
|
55
55
|
|
56
56
|
combined_data = @updates.merge(@terms)
|
57
57
|
|
@@ -59,7 +59,7 @@ private
|
|
59
59
|
combined_data.each_key do |column_name|
|
60
60
|
sql << ", " unless first
|
61
61
|
first = false if first
|
62
|
-
sql <<
|
62
|
+
sql << @db.quote_column(column_name)
|
63
63
|
end
|
64
64
|
|
65
65
|
sql << ") VALUES ("
|
@@ -68,7 +68,7 @@ private
|
|
68
68
|
combined_data.each_value do |value|
|
69
69
|
sql << ", " unless first
|
70
70
|
first = false if first
|
71
|
-
sql << @db.
|
71
|
+
sql << @db.quote_value(value).to_s
|
72
72
|
end
|
73
73
|
|
74
74
|
sql << ")"
|
@@ -76,13 +76,13 @@ private
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def update_sql
|
79
|
-
sql = "UPDATE OR IGNORE #{@db.
|
79
|
+
sql = "UPDATE OR IGNORE #{@db.quote_table(@table_name)} SET "
|
80
80
|
|
81
81
|
first = true
|
82
82
|
@updates.each do |key, value|
|
83
83
|
sql << ", " unless first
|
84
84
|
first = false if first
|
85
|
-
sql << "#{@db.
|
85
|
+
sql << "#{@db.quote_column(key)} = #{@db.quote_value(value)}"
|
86
86
|
end
|
87
87
|
|
88
88
|
sql << " WHERE "
|
@@ -91,7 +91,7 @@ private
|
|
91
91
|
@terms.each do |key, value|
|
92
92
|
sql << " AND " unless first
|
93
93
|
first = false if first
|
94
|
-
sql << "#{@db.
|
94
|
+
sql << "#{@db.quote_column(key)} = #{@db.quote_value(value)}"
|
95
95
|
end
|
96
96
|
|
97
97
|
sql
|
data/lib/baza/table.rb
CHANGED
@@ -43,12 +43,12 @@ class Baza::Table
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def rows_count
|
46
|
-
sql = "SELECT COUNT(*) AS count FROM #{
|
46
|
+
sql = "SELECT COUNT(*) AS count FROM #{db.quote_table(name)}"
|
47
47
|
@db.query(sql).fetch.fetch(:count).to_i
|
48
48
|
end
|
49
49
|
|
50
50
|
def truncate
|
51
|
-
@db.query("TRUNCATE #{@db.
|
51
|
+
@db.query("TRUNCATE #{@db.quote_table(name)}")
|
52
52
|
self
|
53
53
|
end
|
54
54
|
|
@@ -60,7 +60,7 @@ class Baza::Table
|
|
60
60
|
|
61
61
|
def create_columns(col_arr)
|
62
62
|
col_arr.each do |col_data|
|
63
|
-
sql = "ALTER TABLE #{db.
|
63
|
+
sql = "ALTER TABLE #{db.quote_column(name)} ADD COLUMN #{@db.columns.data_sql(col_data)};"
|
64
64
|
@db.query(sql)
|
65
65
|
end
|
66
66
|
end
|
data/spec/baza/cloner_spec.rb
CHANGED
@@ -2,8 +2,8 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe Baza::Cloner do
|
4
4
|
it "can clone drivers" do
|
5
|
-
require "
|
6
|
-
conn = Baza::
|
5
|
+
require "info_active_record_pg"
|
6
|
+
conn = Baza::InfoActiveRecordPg.connection
|
7
7
|
baza_db = Baza::Cloner.from_active_record_connection(conn[:conn])
|
8
8
|
expect(baza_db.query("SELECT 1 AS test").fetch[:test].to_s).to eq "1"
|
9
9
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Baza::Driver::Tiny do
|
4
|
+
describe "#quote_database" do
|
5
|
+
it "quotes the given database name" do
|
6
|
+
expect(Baza::Driver::Tiny.quote_database("test_database")).to eq "[test_database]"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#quote_column" do
|
11
|
+
it "quotes the given column name" do
|
12
|
+
expect(Baza::Driver::Tiny.quote_column("test_column")).to eq "[test_column]"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#quote_index" do
|
17
|
+
it "quotes the given index name" do
|
18
|
+
expect(Baza::Driver::Tiny.quote_index("test_index")).to eq "[test_index]"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#quote_table" do
|
23
|
+
it "quotes the given table name" do
|
24
|
+
expect(Baza::Driver::Tiny.quote_table("test_table")).to eq "[test_table]"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -5,12 +5,12 @@ class Baza::InfoActiveRecordPg
|
|
5
5
|
require "active_record"
|
6
6
|
require "pg"
|
7
7
|
|
8
|
-
@conn_pool
|
8
|
+
@conn_pool = ::ActiveRecord::Base.establish_connection(
|
9
9
|
adapter: "postgresql",
|
10
10
|
database: "baza",
|
11
11
|
username: "postgres"
|
12
12
|
)
|
13
|
-
@conn
|
13
|
+
@conn = @conn_pool.connection
|
14
14
|
|
15
15
|
{pool: @conn_pool, conn: @conn}
|
16
16
|
end
|
@@ -4,16 +4,13 @@ class Baza::InfoActiveRecordSqlite3
|
|
4
4
|
def self.connection
|
5
5
|
require "active_record"
|
6
6
|
|
7
|
-
|
8
|
-
File.unlink(path) if File.exist?(path)
|
9
|
-
|
10
|
-
@conn_pool ||= ::ActiveRecord::Base.establish_connection(
|
7
|
+
conn_pool = ::ActiveRecord::ConnectionAdapters::ConnectionHandler.new.establish_connection(
|
11
8
|
adapter: "sqlite3",
|
12
|
-
database:
|
9
|
+
database: ":memory:"
|
13
10
|
)
|
14
|
-
|
11
|
+
conn = conn_pool.connection
|
15
12
|
|
16
|
-
{pool:
|
13
|
+
{pool: conn_pool, conn: conn}
|
17
14
|
end
|
18
15
|
|
19
16
|
def initialize(args = {})
|
@@ -26,11 +23,7 @@ class Baza::InfoActiveRecordSqlite3
|
|
26
23
|
}.merge(args))
|
27
24
|
end
|
28
25
|
|
29
|
-
def before
|
30
|
-
@db.tables.list(&:drop)
|
31
|
-
end
|
26
|
+
def before; end
|
32
27
|
|
33
|
-
def after
|
34
|
-
@db.close
|
35
|
-
end
|
28
|
+
def after; end
|
36
29
|
end
|
data/spec/info_sqlite3.rb
CHANGED
@@ -3,26 +3,17 @@ class Baza::InfoSqlite3
|
|
3
3
|
|
4
4
|
def initialize(args = {})
|
5
5
|
require "sqlite3" unless RUBY_ENGINE == "jruby"
|
6
|
-
require "tmpdir"
|
7
|
-
|
8
|
-
@path = "#{Dir.tmpdir}/baza_sqlite3_test_#{Time.now.to_f.to_s.hash}_#{Random.rand}.sqlite3"
|
9
|
-
File.unlink(path) if File.exist?(@path)
|
10
6
|
|
11
7
|
@db = Baza::Db.new({
|
12
8
|
type: :sqlite3,
|
13
|
-
path:
|
9
|
+
path: ":memory:",
|
14
10
|
index_append_table_name: true,
|
15
11
|
sql_to_error: true,
|
16
12
|
debug: false
|
17
13
|
}.merge(args))
|
18
14
|
end
|
19
15
|
|
20
|
-
def before
|
21
|
-
@db.tables.list(&:drop)
|
22
|
-
end
|
16
|
+
def before; end
|
23
17
|
|
24
|
-
def after
|
25
|
-
@db.close
|
26
|
-
File.unlink(@path)
|
27
|
-
end
|
18
|
+
def after; end
|
28
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: baza
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.36
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kasper Johansen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: array_enumerator
|
@@ -112,16 +112,16 @@ dependencies:
|
|
112
112
|
name: activerecord
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: activerecord-jdbc-adapter
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -470,6 +470,7 @@ files:
|
|
470
470
|
- spec/drivers/pg/columns_spec.rb
|
471
471
|
- spec/drivers/pg_spec.rb
|
472
472
|
- spec/drivers/sqlite3_spec.rb
|
473
|
+
- spec/drivers/tiny_spec.rb
|
473
474
|
- spec/info_active_record_example.rb
|
474
475
|
- spec/info_active_record_mysql2_example.rb
|
475
476
|
- spec/info_active_record_mysql2_peak_flow.rb
|
@@ -515,7 +516,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
515
516
|
version: '0'
|
516
517
|
requirements: []
|
517
518
|
rubyforge_project:
|
518
|
-
rubygems_version: 2.
|
519
|
+
rubygems_version: 2.6.14
|
519
520
|
signing_key:
|
520
521
|
specification_version: 4
|
521
522
|
summary: A database abstraction layer, model framework and database framework.
|