pg_graph 0.3.5 → 0.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d6b2edcd76a35c76a8c18ca94f2e81416e8a5b1c12aa6688937216bf45250eb2
4
- data.tar.gz: 30bd02185aa89f1fa561e67bbced8bbdea4b69940f6790fdddf0edb037c49d2e
3
+ metadata.gz: 45928a90edcb72e3910365c81a2a18876044ced33ed44d9b9227cac0e3e9d712
4
+ data.tar.gz: 9b75a3ee1a45dede71405e1bf7b1832aecad8f515c02e1e6e34f175f4ad3f5f4
5
5
  SHA512:
6
- metadata.gz: 1543e51a4838a9f5818abeef4cf9e2dbd213b693ac88af40ccc0744ec58bcb97ebe3c00f6b7f7f23174c5a285402e6a51eb07c36bbed7800c2d2654dd9a6cc37
7
- data.tar.gz: b246237fe7b0df971c6400cd12e17cad876d7514164c1f03de6a9167ac6e5f8dd0be6154c806dcafe7bcc7284da39fca35395dbcd01262c126fb63caa10c5c28
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.subtable?
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};"
@@ -1,3 +1,3 @@
1
1
  module PgGraph
2
- VERSION = "0.3.5"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -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, supertable: nil)
6
- print identifier + (supertable ? " < #{supertable}" : "")
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
- supertable = table.supertable&.identifier
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, supertable: supertable, **opts)
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/subtables
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
- # Parent table if table is a derived table and otherwise nil. Initialized by #read
156
- attr_reader :supertable
155
+ # True if table is a derived table. TODO: Use sub_table etc.
156
+ def sub_table?() !super_table.nil? end
157
157
 
158
- # True if table is a parent table. Initialized by #read
159
- def supertable?() @has_subtables || false end
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 derived table
162
- def subtable?() !@supertable.nil? end
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.3.5
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-06-16 00:00:00.000000000 Z
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.7
243
+ rubygems_version: 3.3.18
244
244
  signing_key:
245
245
  specification_version: 4
246
246
  summary: Create graph type model of database