pg_graph 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/diagram.drawio +1 -1
- data/lib/data/render.rb +1 -1
- data/lib/pg_graph/version.rb +1 -1
- data/lib/type/dump_type.rb +4 -4
- data/lib/type/read.rb +1 -7
- data/lib/type/type.rb +56 -28
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45928a90edcb72e3910365c81a2a18876044ced33ed44d9b9227cac0e3e9d712
|
4
|
+
data.tar.gz: 9b75a3ee1a45dede71405e1bf7b1832aecad8f515c02e1e6e34f175f4ad3f5f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 726bf17e1965dc49ffb0b237ee0409e7f788ce517e2c5b4ee445697d5a48180dc9f3833e29ca188e429ce910521fb0583aab6309edd81d21d5b4bc8399ecb51e
|
7
|
+
data.tar.gz: 0dfc4dc3f9985010fe71af934840bfdce36aa00f5aa59c37dbb331d6b4faf3a7610f7f4daa78e75219906c5b7a86164b4a0bff338492c277bb526e1aeeb6526c
|
data/doc/diagram.drawio
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<mxfile host="Electron" modified="2021-06-19T19:00:11.786Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.5.1 Chrome/89.0.4389.82 Electron/12.0.1 Safari/537.36" etag="VEebFTCiVobfmwhjoPcL" version="14.5.1" type="device" pages="4"><diagram name="PgGraph::Type" id="cKRLOOJVSauCXKW0aq4U">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</diagram><diagram name="PgGraph::Data" id="GMbTPo9J8OV5Z1ZZLrwW">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</diagram><diagram id="Xuq1FaBXCnIs1bzDGohJ" name="Example">7Vtbk6I4FP41ProFBBEf29beqZnq2e7tnZqqeYsSMdtAmBhv/es3gaAQEFRwVh2svsDhcHI73/mSk9gBj/7mTwrD+TNxkNcxNGfTAaOOYeimYXTEj+ZsY8nA1mKBS7EjlfaCN/yBpDBRW2IHLTKKjBCP4TArnJIgQFOWkUFKyTqrNiNettQQuigneJtCLy/9jh02l1LdGuwffELYncuibaMfP/BhoixbsphDh6xTIjDugEdKCIuv/M0j8kTnJf3i4tU/0+4rGL++at/+/XCm7z7rxsaeTnll1wSKAtasaTm4K+gtZX91DMvjhQxD0WK2ld1o/VyKZg59SF0cdMADf6qFG/6XC6POEvIuI2H8zEw9Y2jDutDDrnxvyluBaPaxg6aEQoaJ1FkGDqIeDtC+aH7lyv9RBSeJ4NtCWIuFvPkTVZHLQlU2p6rkrPZ6aMbih7Z4qFY1gD4qq8UlyhRwKCzSyBRmrBBlmMPkIR6YUTR0QzlMo7iQIeFaMy9y+hnm3gSGMxIwCXLdkPdP0MeeCA+fkLdCwqroYeZ7Qolf7oAT3TBK3tEj8QiNKgI0DQDLEqZ4CSn5yBzrT71d1UV90UbBdAUg9B1KeXhDxEeMbvl70oo5kMCWkQ1ovfh+nYoTmtSZp0JEX8qgDE3uzvQefvxCIvAENII7QOPYh9i7TjgipWotOI4Hh25px4HDuhQ4zDsAxwuesiVF1wkP7LfccSw8LJU79P8bHtYdwONv4l0pNg7P5FpoKNAwctA4clp1MWj0c9DgPfag5cYOBc6DWHHyO8KVxYwhSFa0dtTHkLJEIyDcpaVM1XmKBnUkPAw5fDUqiyCUzYlLAuiN99L0iPLiUq/G9RMGzhge3jCypFNUvfbjFXZRmT2zdLj13fp4m8wczD8GqY99eFSl0ReCeYN2FkEva9CwSw3G7ZQ20utfxazZP8ls3C05s5ED7nrhfJ+0C8K14o4ULfAHnES3Wj6IFEcaD06QN4TTd5cSHnpTwJ9FHyXWaKWhIxNhDsURYa7o5ZRfd9IZHtmifV7lnBDUL/XJBAIUeZyJVln8HO+IuhKQyGy2QBfxhsH53kDjANq6Q0mIasQblDDXNZTwof8qZ0ncUuGzr9fMZ/oV8Rmo4DMtO9AWqMtnQCFI1XPO5LPeSWYP8BkffrhNqYVCYXG4MT0FBsms7VAtK/T5RVyDZhGit+xaJ5zqWqcMIjdHr3rRNkfLr405xL0RbD4P/5UT7HM9gpUaZQSr3wfBWuXOYqnEVZdg+7bCMYrn9PvnMexAO81uQxRrmkoCBZRTbIX+hSi2KB3fUuzxmCufhd4exfZair2kQ9wbxea3K8Yb6Ici/6+NIO9SuEA5BxIbDEoOPDPScg2bHlcpqgg9PnaciFvXc8zQWwgjHlxTKBwwcjvkSKdN+5qZ3Msq6jWGv3T0lQifDGM6o55k3dMZdUM77CDHZtQ1/CNc23+9M7SdfHn+0u2+8d98BuL2NptecOC2m003vtmkHlMwf+UxhUJo5FMPz7ewdkj7RMNribIIUrmWMMpZUVem/mb5ps4RyTpdCbX9ZpJ14CSzzW0+FXZ+jXTIbzZ3Pwzxm5y6Fzan6NRhO3Nvyh1ud+K+gj9/WJ+B9xK+fV6B6cAesUnBzM9BM7jkc5VkfrWbItHoNM+Fae/K96SsZmhOU84uWHXPWKibXBW8eSzNAfUsyFlnLGonzCr2pCr0ayfMCoHTbkkdG2QPx52b5NzC5tSYgf1unHuGO9wZ5+YnaCHFPhR1VzlXfsXhekn3mg42VmRcLYUmzF7dfSr1BKLZzD6VPTjNblNHQSyl2KqjIOX6l6HddpuqVpy93V2qwua0m1SXdIeboV1+u//adqy+//I7GP8H</diagram><diagram id="KvlQ_p8h7sZ-zoqvewi3" name="Page-3">7Vpdb5swFP01PFYCGwh5zEezSlOnKJ22aS8VhRvi1WDmOGmyXz8DhoCTqmnUNhRFqlp8fH2v7/U5tkNj4FG8+cL9dHHLQqAGMsONgccGQpaNkJH9mOG2QPqeWQARJ6Ey2gF35B8osDRbkRCWDUPBGBUkbYIBSxIIRAPzOWdPTbM5o82oqR/BHnAX+HQf/UlCsVCo5fZ3HTdAooUK7aFe0RH7pbHKZLnwQ/ZUg/C1gUecMVE8xZsR0Kx4ZV2C+2BmAYj7P/8WTjhlP2bTb1eFs8lrhlQpcEjEya6Xv8Rwltxag/vHmQ2/h+vZzVc1xFz7dKXqZSCXyiDDNMtYbFUZ3b+rLM1h7POIJAYeyF4z3cjfEsyLleFXgqVFn13rE7ARVz4lkRoXyCyAN7tDCBj3BWHKZpWEwClJYBdaPkXqbz7BhxKYRrcg/BKWBXjQTSWW6tiC68hJGVOYi6LTyzqfnexetOacUCM2WgMXRHJ4UFRtnNd1qGo4LmIOmbSa05yRcyKXGg/nLBFKgRZS7YkfE5pp9wboGjKvWfIippmRfKxYnTcEZ48wYpTxfCLYNDF23cyVjFDDx/a1NXGqqWfzhY0muBfYalUSknsPsBgE38pxykvPVtRU245dtp9qIjYVtqjp11WYr/aNqHK904Z8UPJ4hVSsTkgl3+WzgXjwfZvCRTWdVg02z60a1DXVjP3LWdMx1TjYaZlqcAdUM2Gbi046pRNXO10s99w6sTugkylbimUKwUUsnRIL6jstE4vTBbFEdyRO6eVzS7fEot/AHO/cYnEPiEVbNkjCQfaCUrYSJtnbKHRhDeHey8lj6iTDsBUP4GUxC8lLEC+dkPt1r9XVOVDWEuNApVDXzRwO1VpFmDIis6uWFePmhQHZ2nIVaapR9XeXuiNPu3n0NUdFHfYc5UtfpX06G7yOsME0zsiGnttcRBefyAbPajqqdosPYkO/5Wwwj2TDM3vyB7Gh/1ZssM/LhpKMraUD/hR0QNpR0TuRDr2e5gh9MB0O/Z+gTXRAR9IBn5MOSDvwbV3UR98ctCuIrW8z702HQ6/yPiMdWnWRdKxT6aDzSv8A8d50OPTGqk10sD/l7nDqYbG3O7zZYSGbu2+GFOa779fg6/8=</diagram></mxfile>
|
1
|
+
<mxfile host="Electron" modified="2023-12-17T05:00:21.171Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.5.1 Chrome/89.0.4389.82 Electron/12.0.1 Safari/537.36" etag="McMkOBbJ6DXexKbjZrkx" version="14.5.1" type="device" pages="4"><diagram name="PgGraph::Type" id="cKRLOOJVSauCXKW0aq4U">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</diagram><diagram name="PgGraph::Data" id="GMbTPo9J8OV5Z1ZZLrwW">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</diagram><diagram id="Xuq1FaBXCnIs1bzDGohJ" name="Example">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</diagram><diagram id="KvlQ_p8h7sZ-zoqvewi3" name="Page-3">7Vpdb5swFP01PFYCGwh5zEezSlOnKJ22aS8VhRvi1WDmOGmyXz8DhoCTqmnUNhRFqlp8fH2v7/U5tkNj4FG8+cL9dHHLQqAGMsONgccGQpaNkJH9mOG2QPqeWQARJ6Ey2gF35B8osDRbkRCWDUPBGBUkbYIBSxIIRAPzOWdPTbM5o82oqR/BHnAX+HQf/UlCsVCo5fZ3HTdAooUK7aFe0RH7pbHKZLnwQ/ZUg/C1gUecMVE8xZsR0Kx4ZV2C+2BmAYj7P/8WTjhlP2bTb1eFs8lrhlQpcEjEya6Xv8Rwltxag/vHmQ2/h+vZzVc1xFz7dKXqZSCXyiDDNMtYbFUZ3b+rLM1h7POIJAYeyF4z3cjfEsyLleFXgqVFn13rE7ARVz4lkRoXyCyAN7tDCBj3BWHKZpWEwClJYBdaPkXqbz7BhxKYRrcg/BKWBXjQTSWW6tiC68hJGVOYi6LTyzqfnexetOacUCM2WgMXRHJ4UFRtnNd1qGo4LmIOmbSa05yRcyKXGg/nLBFKgRZS7YkfE5pp9wboGjKvWfIippmRfKxYnTcEZ48wYpTxfCLYNDF23cyVjFDDx/a1NXGqqWfzhY0muBfYalUSknsPsBgE38pxykvPVtRU245dtp9qIjYVtqjp11WYr/aNqHK904Z8UPJ4hVSsTkgl3+WzgXjwfZvCRTWdVg02z60a1DXVjP3LWdMx1TjYaZlqcAdUM2Gbi046pRNXO10s99w6sTugkylbimUKwUUsnRIL6jstE4vTBbFEdyRO6eVzS7fEot/AHO/cYnEPiEVbNkjCQfaCUrYSJtnbKHRhDeHey8lj6iTDsBUP4GUxC8lLEC+dkPt1r9XVOVDWEuNApVDXzRwO1VpFmDIis6uWFePmhQHZ2nIVaapR9XeXuiNPu3n0NUdFHfYc5UtfpX06G7yOsME0zsiGnttcRBefyAbPajqqdosPYkO/5Wwwj2TDM3vyB7Gh/1ZssM/LhpKMraUD/hR0QNpR0TuRDr2e5gh9MB0O/Z+gTXRAR9IBn5MOSDvwbV3UR98ctCuIrW8z702HQ6/yPiMdWnWRdKxT6aDzSv8A8d50OPTGqk10sD/l7nDqYbG3O7zZYSGbu2+GFOa779fg6/8=</diagram></mxfile>
|
data/lib/data/render.rb
CHANGED
@@ -211,7 +211,7 @@ module PgGraph::Data
|
|
211
211
|
|
212
212
|
def render_restart_sequences()
|
213
213
|
@tables.map { |table|
|
214
|
-
if table.type.
|
214
|
+
if table.type.sub_table?
|
215
215
|
nil
|
216
216
|
elsif table.empty? && @with_deletes || !table.empty? && table.max_id > @ids[table.uid]
|
217
217
|
"alter table #{table.uid} alter column id restart with #{table.max_id+1};"
|
data/lib/pg_graph/version.rb
CHANGED
data/lib/type/dump_type.rb
CHANGED
@@ -2,8 +2,8 @@ require 'indented_io'
|
|
2
2
|
|
3
3
|
module PgGraph::Type
|
4
4
|
class Node
|
5
|
-
def dump(children = self.children.values.sort_by(&:name), link_info: false,
|
6
|
-
print identifier + (
|
5
|
+
def dump(children = self.children.values.sort_by(&:name), link_info: false, super_table: nil)
|
6
|
+
print identifier + (super_table ? " < #{super_table}" : "")
|
7
7
|
puts
|
8
8
|
indent { children.each { |child| child.dump(link_info: link_info) } }
|
9
9
|
end
|
@@ -17,11 +17,11 @@ module PgGraph::Type
|
|
17
17
|
|
18
18
|
class RecordType
|
19
19
|
def dump(**opts)
|
20
|
-
|
20
|
+
super_table = table.super_table&.identifier
|
21
21
|
columns = fields.reject { |column|
|
22
22
|
column.primary_key? || column.name =~ /_id$/ || column.name =~ /_kind$/ # FIXME
|
23
23
|
}
|
24
|
-
super(columns,
|
24
|
+
super(columns, super_table: super_table, **opts)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
data/lib/type/read.rb
CHANGED
@@ -179,19 +179,13 @@ module PgGraph::Type
|
|
179
179
|
end
|
180
180
|
}
|
181
181
|
|
182
|
-
# Setup super/
|
182
|
+
# Setup super/sub_tables
|
183
183
|
id_link_columns.each { |this_record_type, meta_column|
|
184
184
|
# Create forward and backward references for id links
|
185
185
|
constraint = meta_column.references.first
|
186
186
|
that_record_type = dot(constraint.referenced_table.path).type.record_type
|
187
187
|
SuperRecordColumn.new(this_record_type, that_record_type)
|
188
188
|
SubRecordColumn.new(that_record_type, this_record_type)
|
189
|
-
|
190
|
-
# Create hierarchy
|
191
|
-
this_table = this_record_type.table
|
192
|
-
that_table = that_record_type.table
|
193
|
-
this_table.instance_variable_set(:@supertable, that_table)
|
194
|
-
that_table.instance_variable_set(:@has_subtables, true)
|
195
189
|
}
|
196
190
|
|
197
191
|
# Create N:M or M:M reference fields
|
data/lib/type/type.rb
CHANGED
@@ -152,14 +152,17 @@ module PgGraph::Type
|
|
152
152
|
|
153
153
|
forward_method :type, :keys, :fields, :key?, :[], :columns, :value_columns, :column?
|
154
154
|
|
155
|
-
#
|
156
|
-
|
155
|
+
# True if table is a derived table. TODO: Use sub_table etc.
|
156
|
+
def sub_table?() !super_table.nil? end
|
157
157
|
|
158
|
-
#
|
159
|
-
def
|
158
|
+
# Parent table if this table is a derived table and otherwise nil
|
159
|
+
def super_table = record_type.super_record&.table
|
160
|
+
|
161
|
+
# Recursive parent table if table is a derived table and otherwise nil
|
162
|
+
def root_table = record_type.root_record&.table
|
160
163
|
|
161
|
-
# True if table is a
|
162
|
-
def
|
164
|
+
# True if table is a parent table. Initialized by #read
|
165
|
+
def super_table?() record_type.sub_record? end
|
163
166
|
|
164
167
|
def mm_table?() @mm_table end
|
165
168
|
def nm_table?() @nm_table end
|
@@ -231,6 +234,53 @@ module PgGraph::Type
|
|
231
234
|
class RecordType < CompositeType
|
232
235
|
include TableObject
|
233
236
|
|
237
|
+
# Associated Table object
|
238
|
+
attr_reader :table
|
239
|
+
|
240
|
+
# Redefine array_type
|
241
|
+
def array_type() table_type end
|
242
|
+
|
243
|
+
def super_record()
|
244
|
+
(@super_record_initialized && @super_record) or begin
|
245
|
+
@super_record_initialized = true
|
246
|
+
@super_record = fields.find { |field| field.is_a?(SuperRecordColumn) }&.type
|
247
|
+
end
|
248
|
+
end
|
249
|
+
|
250
|
+
def root_record()
|
251
|
+
(@root_record_initialized && @root_record) or begin
|
252
|
+
@root_record_initialized = true
|
253
|
+
@root_record = super_record
|
254
|
+
while @root_record&.super_record
|
255
|
+
@root_record = @root_record.super_record
|
256
|
+
end
|
257
|
+
@root_record
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
def sub_record?
|
262
|
+
(@sub_record_initialized && sub_record) or begin
|
263
|
+
@sub_record_initialized = true
|
264
|
+
@sub_record = fields.find { |field| field.is_a?(SubRecordColumn) } && true || false
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
# A record type has the schema as parent. Note that a record is
|
269
|
+
# initialized with a Table object and not a TableType object
|
270
|
+
def initialize(table)
|
271
|
+
constrain table, Table
|
272
|
+
super(table.schema, PgGraph.inflector.table2record_type(table.name))
|
273
|
+
@table = table
|
274
|
+
table_type = TableType.new(table.schema, self) # FIXME
|
275
|
+
@table.send(:type=, table_type)
|
276
|
+
@super_record_initialized = false
|
277
|
+
end
|
278
|
+
|
279
|
+
def attach(*args)
|
280
|
+
@columns = nil
|
281
|
+
super
|
282
|
+
end
|
283
|
+
|
234
284
|
# List of postgres columns. The columns are sorted by ordinal
|
235
285
|
def columns()
|
236
286
|
@columns ||= begin
|
@@ -287,8 +337,6 @@ module PgGraph::Type
|
|
287
337
|
|
288
338
|
end
|
289
339
|
|
290
|
-
# field.is_a?(SimpleColumn) || field.is_a?(KindReference}.sort_by(&:ordinal) end
|
291
|
-
|
292
340
|
# List of columns excluding generated fields
|
293
341
|
def value_columns()
|
294
342
|
columns.select { |column| !column.generated? }
|
@@ -301,26 +349,6 @@ module PgGraph::Type
|
|
301
349
|
@columns_hash.key?(name)
|
302
350
|
end
|
303
351
|
|
304
|
-
# Associated Table object
|
305
|
-
attr_reader :table
|
306
|
-
|
307
|
-
# Redefine array_type
|
308
|
-
def array_type() table_type end
|
309
|
-
|
310
|
-
# A record type has the schema as parent. Note that a record is
|
311
|
-
# initialized with a Table object and not a TableType object
|
312
|
-
def initialize(table)
|
313
|
-
constrain table, Table
|
314
|
-
super(table.schema, PgGraph.inflector.table2record_type(table.name))
|
315
|
-
@table = table
|
316
|
-
table_type = TableType.new(table.schema, self) # FIXME
|
317
|
-
@table.send(:type=, table_type)
|
318
|
-
end
|
319
|
-
|
320
|
-
def attach(*args)
|
321
|
-
@columns = nil
|
322
|
-
super
|
323
|
-
end
|
324
352
|
end
|
325
353
|
|
326
354
|
class ArrayType < Type
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: boolean
|
@@ -240,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
240
|
- !ruby/object:Gem::Version
|
241
241
|
version: '0'
|
242
242
|
requirements: []
|
243
|
-
rubygems_version: 3.3.
|
243
|
+
rubygems_version: 3.3.18
|
244
244
|
signing_key:
|
245
245
|
specification_version: 4
|
246
246
|
summary: Create graph type model of database
|