baza 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +58 -13
  3. data/VERSION +1 -1
  4. data/baza.gemspec +15 -3
  5. data/include/db.rb +871 -865
  6. data/include/drivers/mysql/mysql.rb +104 -297
  7. data/include/drivers/mysql/mysql_column.rb +133 -0
  8. data/include/drivers/mysql/mysql_columns.rb +4 -127
  9. data/include/drivers/mysql/mysql_index.rb +76 -0
  10. data/include/drivers/mysql/mysql_indexes.rb +0 -73
  11. data/include/drivers/mysql/mysql_result.rb +42 -0
  12. data/include/drivers/mysql/mysql_result_java.rb +61 -0
  13. data/include/drivers/mysql/mysql_result_mysql2.rb +26 -0
  14. data/include/drivers/mysql/mysql_result_unbuffered.rb +72 -0
  15. data/include/drivers/mysql/mysql_sqlspecs.rb +1 -1
  16. data/include/drivers/mysql/mysql_table.rb +361 -0
  17. data/include/drivers/mysql/mysql_tables.rb +23 -381
  18. data/include/drivers/sqlite3/libknjdb_java_sqlite3.rb +17 -22
  19. data/include/drivers/sqlite3/libknjdb_sqlite3_ironruby.rb +13 -13
  20. data/include/drivers/sqlite3/sqlite3.rb +39 -105
  21. data/include/drivers/sqlite3/sqlite3_column.rb +146 -0
  22. data/include/drivers/sqlite3/sqlite3_columns.rb +17 -149
  23. data/include/drivers/sqlite3/sqlite3_index.rb +55 -0
  24. data/include/drivers/sqlite3/sqlite3_indexes.rb +0 -52
  25. data/include/drivers/sqlite3/sqlite3_result.rb +35 -0
  26. data/include/drivers/sqlite3/sqlite3_result_java.rb +39 -0
  27. data/include/drivers/sqlite3/sqlite3_table.rb +399 -0
  28. data/include/drivers/sqlite3/sqlite3_tables.rb +7 -403
  29. data/include/idquery.rb +19 -19
  30. data/include/model.rb +139 -139
  31. data/include/model_handler_sqlhelper.rb +74 -74
  32. data/spec/support/driver_columns_collection.rb +17 -0
  33. metadata +14 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6b59d710af6cacaf585d14ba20a3f269909c1c5c
4
- data.tar.gz: 6788d6b19dd3cac5f820e59e9ba2714269a8630d
3
+ metadata.gz: fd02457700f9360c5cef41f8b101fa297016136e
4
+ data.tar.gz: 66949e26d04439be674b2cdd908c613753c5e26d
5
5
  SHA512:
6
- metadata.gz: 4d0f1a4cf4f7d8f7825753099395983f2d031b2c963f822b8ecbea39badd2d668ef32f20fdd1bd235a8f82048b610a0e0bbdb7d0bb96b2d8a2d3318eb2db5f75
7
- data.tar.gz: 5ba4b78729f00c40b30e60095a133ed6254557f044880ee55aa8d27d3e8a75b89928f07ad3d5bbf0887d852d9b7f03f623610fc8f369daf56a43faca1200cee3
6
+ metadata.gz: 13fdc63c67474ad44f1ba5b029046246d9339a5bfff7cdcdfb9761f3ebff42df0599d85f03409be4ed9e947613565dca672e9e0e679b0d5fbc3bda07f2c4c4cb
7
+ data.tar.gz: 28472e1d5af9ab5763a15f0dd8f3b33761948d167b572f06fa084e17d882eea51c262e3d0acf16cb736fd4824cce2974d2bbd3b7d37c9efffec4ea1cbd009bc7
data/README.md CHANGED
@@ -71,7 +71,7 @@ db.update(:users, {name: "Kasper Johansen"}, {name: "Kasper"})
71
71
 
72
72
  ### Delete
73
73
  ```ruby
74
- db.delete(:users, {name: "Kasper"})
74
+ db.delete(:users, name: "Kasper")
75
75
  ```
76
76
 
77
77
  ### Upsert
@@ -85,11 +85,11 @@ db.upsert(:users, {name: "Kasper"}, {age: 27})
85
85
  ### Table creation
86
86
  ```ruby
87
87
  db.tables.create(:users, {
88
- :columns => [
89
- {:name => :id, :type => :int, :autoincr => true, :primarykey => true},
90
- {:name => :name, :type => :varchar}
88
+ columns: [
89
+ {name: :id, type: :int, autoincr: true, primarykey: true},
90
+ {name: :name, type: :varchar}
91
91
  ],
92
- :indexes => [
92
+ indexes: [
93
93
  :name
94
94
  ]
95
95
  })
@@ -119,6 +119,16 @@ table = db.tables[:users]
119
119
  table.rename(:new_table_name)
120
120
  ```
121
121
 
122
+ ### Table optimizing
123
+ ```ruby
124
+ table.optimize
125
+ ```
126
+
127
+ ### Table rows counting
128
+ ```ruby
129
+ table.rows_count
130
+ ```
131
+
122
132
  ### Column listing
123
133
  ```ruby
124
134
  table = db.tables[:users]
@@ -127,14 +137,47 @@ cols = table.columns
127
137
 
128
138
  Or a specific column:
129
139
  ```ruby
130
- col = table.column(:id)
131
- puts "Column: #{col.name} #{col.type}(#{col.maxlength})"
140
+ column = table.column(:id)
141
+ puts "Column: #{column.name} #{column.type}(#{column.maxlength})"
142
+ puts "Default: #{column.default}"
143
+ ```
144
+
145
+ ### Column altering
146
+ ```ruby
147
+ column.change(name: "newname", type: :varchar, default: "")
148
+ ```
149
+
150
+ ### Drop column
151
+ ```ruby
152
+ column.drop
153
+ ```
154
+
155
+ ### Get an index by name
156
+ ```ruby
157
+ index = table.index("index_name")
158
+ ```
159
+
160
+ ### Rename index
161
+ ```ruby
162
+ index.rename("new name")
163
+ ```
164
+
165
+ ### Dropping an index
166
+ ```ruby
167
+ index.drop
168
+ ```
169
+
170
+ ### Getting various data from an index
171
+ ```ruby
172
+ puts "Unique: #{index.unique?}"
173
+ puts "Primary: #{index.primary?}"
174
+ puts "Table: #{index.table}"
132
175
  ```
133
176
 
134
177
  ## Copying databases
135
178
  ```ruby
136
- db_mysql = Baza::Db.new(:type => :mysql, :subtype => :mysql2, ...)
137
- db_sqlite = Baza::Db.new(:type => :sqlite3, :path => ...)
179
+ db_mysql = Baza::Db.new(type: :mysql, subtype: :mysql2, ...)
180
+ db_sqlite = Baza::Db.new(type: :sqlite3, path: ...)
138
181
 
139
182
  db_mysql.copy_to(db_sqlite)
140
183
  ```
@@ -142,7 +185,7 @@ db_mysql.copy_to(db_sqlite)
142
185
  ## Dumping SQL to an IO
143
186
  ```ruby
144
187
  db = Baza::Db.new(...)
145
- dump = Baza::Dump.new(:db => db)
188
+ dump = Baza::Dump.new(db: db)
146
189
  str_io = StringIO.new
147
190
  dump.dump(str_io)
148
191
  ```
@@ -151,17 +194,19 @@ dump.dump(str_io)
151
194
  ```ruby
152
195
  db.transaction do
153
196
  1000.times do
154
- db.insert(:users, {:name => "Kasper"})
197
+ db.insert(:users, name: "Kasper")
155
198
  end
156
199
  end
157
200
  ```
158
201
 
159
202
  ## Query Buffer
160
- In order to speed things up, but without using transactions directly, you can use a query buffer. This stores various instructions in memory and flushes them every now and then through transactions or intelligent queries (like multi-insertion). The drawback is that it will not be possible to test the queries for errors before a flush is executed and it wont be possible to read results form any of the queries. It is fairly simple do however:
203
+ In order to speed things up, but without using transactions directly, you can use a query buffer. This stores various instructions in memory and flushes them every now and then through transactions or intelligent queries (like multi-insertion). The drawback is that it will not be possible to test the queries for errors before a flush is executed and it wont be possible to read results from any of the queries.
204
+
205
+ It is fairly simple do:
161
206
  ```ruby
162
207
  db.q_buffer do |buffer|
163
208
  100_000.times do |count|
164
- buffer.insert(:table_name, {:name => "Kasper #{count}"})
209
+ buffer.insert(:table_name, name: "Kasper #{count}")
165
210
 
166
211
  buffer.query("UPDATE table SET ...")
167
212
  buffer.query("DELETE FROM table WHERE ...")
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.14
1
+ 0.0.15
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.14 ruby lib
5
+ # stub: baza 0.0.15 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "baza"
9
- s.version = "0.0.14"
9
+ s.version = "0.0.15"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Kasper Johansen"]
14
- s.date = "2014-10-15"
14
+ s.date = "2015-03-17"
15
15
  s.description = "A database abstraction layer, model framework and database framework."
16
16
  s.email = "kj@gfish.com"
17
17
  s.extra_rdoc_files = [
@@ -33,16 +33,28 @@ Gem::Specification.new do |s|
33
33
  "include/driver.rb",
34
34
  "include/drivers/active_record/active_record.rb",
35
35
  "include/drivers/mysql/mysql.rb",
36
+ "include/drivers/mysql/mysql_column.rb",
36
37
  "include/drivers/mysql/mysql_columns.rb",
38
+ "include/drivers/mysql/mysql_index.rb",
37
39
  "include/drivers/mysql/mysql_indexes.rb",
40
+ "include/drivers/mysql/mysql_result.rb",
41
+ "include/drivers/mysql/mysql_result_java.rb",
42
+ "include/drivers/mysql/mysql_result_mysql2.rb",
43
+ "include/drivers/mysql/mysql_result_unbuffered.rb",
38
44
  "include/drivers/mysql/mysql_sqlspecs.rb",
45
+ "include/drivers/mysql/mysql_table.rb",
39
46
  "include/drivers/mysql/mysql_tables.rb",
40
47
  "include/drivers/sqlite3/libknjdb_java_sqlite3.rb",
41
48
  "include/drivers/sqlite3/libknjdb_sqlite3_ironruby.rb",
42
49
  "include/drivers/sqlite3/sqlite3.rb",
50
+ "include/drivers/sqlite3/sqlite3_column.rb",
43
51
  "include/drivers/sqlite3/sqlite3_columns.rb",
52
+ "include/drivers/sqlite3/sqlite3_index.rb",
44
53
  "include/drivers/sqlite3/sqlite3_indexes.rb",
54
+ "include/drivers/sqlite3/sqlite3_result.rb",
55
+ "include/drivers/sqlite3/sqlite3_result_java.rb",
45
56
  "include/drivers/sqlite3/sqlite3_sqlspecs.rb",
57
+ "include/drivers/sqlite3/sqlite3_table.rb",
46
58
  "include/drivers/sqlite3/sqlite3_tables.rb",
47
59
  "include/dump.rb",
48
60
  "include/idquery.rb",