neo4j_bolt 0.1.11 → 0.1.12
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/bin/neo4j_bolt +38 -4
- data/lib/neo4j_bolt/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6a4dbb95903cee8767e0bedddfc189bb84c928b0a8b2f62808334657dcf7b8d
|
4
|
+
data.tar.gz: fccd788fece9a384523f4c078545c9ee91d926dd8b24ef948c34e050f1341654
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9894b97771c25b396a6a6782a7b6cc5b2788f4aec0cb5484a0a57230c7e9d32ef708042b271425f4d2c5c829f7f5148e2ba96cee5ff9b525d8c1fdcaafebbaa
|
7
|
+
data.tar.gz: d40735d1326f0318dc54ec67568b35d091a0736447a6d082b32e538c8d9d241dbf25af50e591c3e924b46a64fe65ef2c9578e2796f4c6cac3f8c089d1c9f33b1
|
data/Gemfile.lock
CHANGED
data/bin/neo4j_bolt
CHANGED
@@ -202,6 +202,30 @@ class App
|
|
202
202
|
end
|
203
203
|
end
|
204
204
|
|
205
|
+
indexes = {}
|
206
|
+
INDEX_TR = {
|
207
|
+
'UNIQUENESS' => '<u>unique</u>',
|
208
|
+
'BTREE' => 'indexed',
|
209
|
+
}
|
210
|
+
|
211
|
+
['SHOW ALL CONSTRAINTS', 'SHOW ALL INDEXES'].each do |query|
|
212
|
+
neo4j_query(query) do |row|
|
213
|
+
# STDERR.puts row.to_json
|
214
|
+
labels_or_types = row['labelsOrTypes'] || []
|
215
|
+
properties = row['properties'] || []
|
216
|
+
type = row['type']
|
217
|
+
entity = row['entityType']
|
218
|
+
if labels_or_types.size == 1 && properties.size == 1
|
219
|
+
label_or_type = labels_or_types.first
|
220
|
+
property = properties.first
|
221
|
+
indexes[entity.downcase.to_sym] ||= {}
|
222
|
+
indexes[entity.downcase.to_sym][label_or_type] ||= {}
|
223
|
+
indexes[entity.downcase.to_sym][label_or_type][property] ||= Set.new()
|
224
|
+
indexes[entity.downcase.to_sym][label_or_type][property] << type
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
205
229
|
dot = StringIO.open do |io|
|
206
230
|
io.puts "digraph {"
|
207
231
|
io.puts "graph [fontname = Helvetica, fontsize = 10, nodesep = 0.2, ranksep = 0.3];"
|
@@ -218,7 +242,12 @@ class App
|
|
218
242
|
label += "</td></tr>"
|
219
243
|
properties_for_label[lbl].keys.sort.each do |key|
|
220
244
|
label += "<tr>"
|
221
|
-
|
245
|
+
parts = Set.new()
|
246
|
+
((((indexes[:node] || {})[lbl] || {})[key.to_s]) || Set.new()).each do |it|
|
247
|
+
parts << INDEX_TR[it] || it
|
248
|
+
end
|
249
|
+
index_s = parts.empty? ? '' : " <i>(#{parts.join(', ')})</i>"
|
250
|
+
label += "<td border='1' valign='top' align='left' colspan='1'>#{key}#{index_s}</td>"
|
222
251
|
label += "<td border='1' valign='top' align='left' colspan='1'>#{properties_for_label[lbl][key][:classes].to_a.map { |x| TR[x.to_s] || x.to_s }.sort.join(' / ')}</td>"
|
223
252
|
label += "</tr>"
|
224
253
|
end
|
@@ -232,15 +261,20 @@ class App
|
|
232
261
|
lb = parts[2]
|
233
262
|
|
234
263
|
label = "<<table valign='top' align='left' border='0' cellborder='0' cellspacing='0' cellpadding='4'>"
|
235
|
-
label += "<tr><td border='1' bgcolor='#d3d7cf' valign='top' align='left' colspan='2'
|
264
|
+
label += "<tr><td border='1' color='#888888' bgcolor='#d3d7cf' valign='top' align='left' colspan='2'>#{type}"
|
236
265
|
if options[:properties]
|
237
266
|
label += " <i>(#{counts_for_label[s]})</i>"
|
238
267
|
end
|
239
268
|
label += "</td></tr>"
|
240
269
|
(properties_for_label[s] || {}).keys.sort.each do |key|
|
241
270
|
label += "<tr>"
|
242
|
-
|
243
|
-
|
271
|
+
parts = Set.new()
|
272
|
+
((((indexes[:relationship] || {})[type] || {})[key.to_s]) || Set.new()).each do |it|
|
273
|
+
parts << INDEX_TR[it] || it
|
274
|
+
end
|
275
|
+
index_s = parts.empty? ? '' : " <i>(#{parts.join(', ')})</i>"
|
276
|
+
label += "<td border='1' color='#888888' valign='top' align='left' colspan='1'>#{key}#{index_s}</td>"
|
277
|
+
label += "<td border='1' color='#888888' valign='top' align='left' colspan='1'>#{properties_for_label[s][key][:classes].to_a.map { |x| TR[x.to_s] || x.to_s }.sort.join(' / ')}</td>"
|
244
278
|
label += "</tr>"
|
245
279
|
end
|
246
280
|
label += "</table>>"
|
data/lib/neo4j_bolt/version.rb
CHANGED