mosql 0.4.1 → 0.4.2
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/Gemfile.lock +1 -1
- data/README.md +2 -1
- data/lib/mosql/schema.rb +6 -3
- data/lib/mosql/streamer.rb +1 -8
- data/lib/mosql/version.rb +1 -1
- data/test/functional/streamer.rb +15 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c0bef56bc688f403ccbc3ee8cb0e20a68a653b9
|
4
|
+
data.tar.gz: 7a1ee9bfb170e668aa201e84897a19d26cd3ea6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 476b45cde7f4be786096327408a5e07f2124d5cee2e9a53d5da04a4aa5307df2c5aa7e4aef8eff48f3a676249eb39c65f1dd0e8cf0d9a90fd6cb89fc22d74851
|
7
|
+
data.tar.gz: 866fb300b0608669bded7814e30d753749e1511af1008b56be79b032d1f108a3973bf39cf3ab825aa01ffe5155a4f2bdb15d4f7f8882e725118a3ad08a7797c2
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -176,7 +176,8 @@ If it encounters a MongoDB object with fields not listed in the
|
|
176
176
|
collection map, it will discard the extra fields, unless
|
177
177
|
`:extra_props` is set in the `:meta` hash. If it is, it will collect
|
178
178
|
any missing fields, JSON-encode them in a hash, and store the
|
179
|
-
resulting text in `_extra_props` in SQL.
|
179
|
+
resulting text in `_extra_props` in SQL. You can set `:extra_props`
|
180
|
+
to use `JSON`, `JSONB`, or `TEXT`.
|
180
181
|
|
181
182
|
As of PostgreSQL 9.3, you can declare columns as type "JSON" and use
|
182
183
|
the [native JSON support][pg-json] to inspect inside of JSON-encoded
|
data/lib/mosql/schema.rb
CHANGED
@@ -101,10 +101,13 @@ module MoSQL
|
|
101
101
|
primary_key keys
|
102
102
|
if meta[:extra_props]
|
103
103
|
type =
|
104
|
-
|
105
|
-
|
104
|
+
case meta[:extra_props]
|
105
|
+
when 'JSON'
|
106
|
+
'JSON'
|
107
|
+
when 'JSONB'
|
108
|
+
'JSONB'
|
106
109
|
else
|
107
|
-
|
110
|
+
'TEXT'
|
108
111
|
end
|
109
112
|
column '_extra_props', type
|
110
113
|
end
|
data/lib/mosql/streamer.rb
CHANGED
@@ -185,14 +185,7 @@ module MoSQL
|
|
185
185
|
@sql.upsert_ns(ns, obj)
|
186
186
|
end
|
187
187
|
else
|
188
|
-
|
189
|
-
schema = @schema.find_ns!(ns)
|
190
|
-
query = {}
|
191
|
-
primary_sql_keys.each do |key|
|
192
|
-
source = schema[:columns].find {|c| c[:name] == key }[:source]
|
193
|
-
query[key] = selector[source]
|
194
|
-
end
|
195
|
-
@sql.table_for_ns(ns).where(query).delete()
|
188
|
+
@sql.delete_ns(ns, selector)
|
196
189
|
end
|
197
190
|
end
|
198
191
|
|
data/lib/mosql/version.rb
CHANGED
data/test/functional/streamer.rb
CHANGED
@@ -139,6 +139,21 @@ EOF
|
|
139
139
|
assert_equal(100, sequel[:sqltable].where(:_id => o['_id'].to_s).select.first[:var])
|
140
140
|
end
|
141
141
|
|
142
|
+
it 'handle "u" ops with $set, BSON::ObjectID, and a deleted row' do
|
143
|
+
o = { '_id' => BSON::ObjectId.new, 'var' => 17 }
|
144
|
+
@adapter.upsert_ns('mosql_test.collection', o)
|
145
|
+
|
146
|
+
# Don't store the row in mongo, which will cause the 'u' op to
|
147
|
+
# delete it from SQL.
|
148
|
+
|
149
|
+
@streamer.handle_op({ 'ns' => 'mosql_test.collection',
|
150
|
+
'op' => 'u',
|
151
|
+
'o2' => { '_id' => o['_id'] },
|
152
|
+
'o' => { '$set' => { 'var' => 100 } },
|
153
|
+
})
|
154
|
+
assert_equal(0, sequel[:sqltable].count(:_id => o['_id'].to_s))
|
155
|
+
end
|
156
|
+
|
142
157
|
it 'handle "u" ops with $set and a renamed _id' do
|
143
158
|
o = { '_id' => BSON::ObjectId.new, 'goats' => 96 }
|
144
159
|
@adapter.upsert_ns('mosql_test.renameid', o)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mosql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nelson Elhage
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|