pg_graph 0.3.5 → 0.3.6
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/pg_graph/version.rb +1 -1
- data/lib/type/read.rb +0 -6
- data/lib/type/type.rb +42 -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: 966d1a32c7d07915de4608914065d280dcefbcbb223e39ffafbb13c2cf5d4ad6
|
4
|
+
data.tar.gz: 29a0a95e94a719d4b35c8d8f63d72b7f31822d7f3deb26856ba317e4e4304ef0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af39f3ce7708f17745a5d7575621b1e7d2c09b5097c4a904a19f0f94432cda2073edf8520937d7c69a363f3c929c233a47c9ed1fcd56868ed61ab16c3af85173
|
7
|
+
data.tar.gz: b201dba4fb72b0082982b07799185b5931a246d1b8c52d0b0b3542653c7e6698408fbfb779b32830241a741c5c9c652c8009ad3d3e8e78718720ddfdae335690
|
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">7V1dm5q6Fv41Xrof+cbLcey0z+7u7rTTfc7puemDEpUpGIs4Ov31m49EYYESGRCMmYtWYlgS8r5rraysJD3l3tu9963V4hO2kduTB/aup4x7sizJihH+F5W8JiWmJicFc9+xSaVDwZPzG5HCASndODZaZyoGGLuBs8oWTvFyiaZBpszyfbzNVpthN/urK2uOcgVPU8vNl/7XsYMFKZX04eGLD8iZL8hPmzJpsGfRyqQl64Vl422qSHnXU+59jIPkk7e7R2708uh7+XM5+vG4RaPh6O6L+v8H05/h7/1E2MM5t+yb4KNlUK9o0pcvlrsh76sn6274I6NV1OLglbxG/dcmaubIs/y5s+wpd+G3g9Uu/DcsjF9WVN4P8Cr5Tk19F6Bd0LdcZ07um4atQH72axtNsW8FDiZ1Nksb+a6zRIefDj/Nyf/xA05owd8hZmlh2PwJrBiWrWDZwoclldrrolmQfGlGXx591NyvZZ9Jzvy2/IL8wAkRfJe8s3H8VkfkDY6T3xzhsNbMjfE4c8KOVkYzvAwI/ySZXD9YnuNGzP2A3BcUSY0aH3huVCn8uMd0fBH4+Ce6xy724wdRBgNF0fVIVPgLqfKx+k560PaPXgpMAuCoXWiXoiUB6nuEPRT4r2EV8q1GtccrpSu53qYoPCBlixR7dVJmEa0x34s+MCP8QMhxBlEUDogytgJrYq0FWfgiiz7IkkXW2iaLxgFZnqYL5FmCKlxRRe0cVXRuqPJ58hz574IwPBFG7hxhDA4I882auMIL44spwyxRFFNtmSgmD0R5XQme8MUTReoaUYYcEOXJ8VYu6i5dVngdzH20/hFkH1EwhdmiaK3HwOgDXDVT7rEXgtEJzibK9TSxu2pAWM2qAXGlc8pA4kAZfI3utQVfuOeLrrTOFx6mWu9833oVdOGOLnBQ1gHzwsOEaxznE3Thni4dsC4qB3R5cJBrC6pwRRWzcxNIEg/ZCWEXbryl4ArXXGk/NC5xkZ4Qx8YFYzhkTMgGQJlB6+aFhwSFJC4mKHMTlGnfyvCQqvC0WUXieJ1TEhqBY40Awhmq1LpG4CInYzMR+kDogyvUBzLQB1rb+oA+0FXrg3g2QDCGS8YAn1pT2x6GyjykZ3zyBGf45QycczZa54xcwBnQcWhp30W7EoRXExdPf4ZvKCyifaInlw9xb40H2Y5A9hw9EUnYDxZ4jpeW++5QOkI7J/hfdOMfGrn6TsREn8e79MUrvViGTU/dFF1+p78YXRxui6/ofef16xpv/Ck6UY9EvYKQNOiUPBJQjt7FSZSkQUA73EduqEhe0jcWo4CIe8RO2LZDTpCeBZykASAljSR3HbCUE2TIJYKSt5ATFINy38Y34LQoN0LglAmn5hXg1ADwggqPGadKiaCmcVqUlHBRnFbEXBV814zTISNOzRZwSrNequpPCSjinKCmcVmUASD0JxMuqdPWSWDSVf5AgapyRaDqSomgpoFaNP0ugMoGVLn7QNVgoK0yUM2WgVo06S0sPRtQJUagUtXbBlIVuJ5CrYhUdVgiqGmkFs01C5XKhlSFFalyi8a/zLlk1qlyy15q0RyoQCoTUnVGoLaJUzg4H1bEqTYsEdQwThXhpFbXqBqrRlW746UqVeNR0EvNCWoaqa17qdeLVFagtqhRDRjfNyridAjj+1BQ0zgVPmp1jaoKoF4OqMJFrQxU1rFUiziFIyBVqmkodWmcqvkJ03W8Z+n6FFxxWD2DVrMXJVBYfkBrLPES0TJYJwXpchynQb9ng5QGeBree7CXAFxKwzuF9m4BXGMEOPVGT2R/HIldwc3kNfWPYerPMKqhOjeCK5F7BOQ5uX3Alj6kHZ7N1qgZojDM2Ppo7fyONzBNYAOSloozm1xrgtyRNf059/FmaacSjWbxXy+b2zTonUpVymQ0HctbisQV3ZyiGiPgqfYgJ5SQpvf254Kw5zxR7rxRL18QDwwzpcfw4CcZWwIQp5LgasED1BdyVg+Z0sXgkg8F4XhXcGFn2x+Zs2Y0VbezJvTy6rGz2uA8uddgZxkiUbdnZ/XbtbMMEZ8btLO1AYI3O5uPuyT7Kh83ssSEtmZkM8kWVYzs/qIVI8ua3k6nyEut7BnTL2Aa2gSoq2ZUJeMssUdsarwfZKraKqqwZm4LXWh83PJnn5HEtQ5sSn7/SHAUeA20a5qnJ31sYd0LdNYNWnetaC2esO61AYIz604P2E3BxY9X2/8oM/JdGknTz1dk5NkzMVlj1mfMCcItRdVazLyZy9u8hJk3zJOGu7Q+8AtKDP0+SkktvXI5S8+wEu/mLD3VX7do6d8wf8Kvpa8PELxZ+vz0SmLp87sKXNP4/hpNP3Nqu1S76VeB9TOMWkw/PBa6RCxr1FzNSoULjRokC0Oe8e3ZWu12be0b5lA4trW1AYIzW6vngzDIRV74Njs/rD5uW41mZqifN96KPqflT/OKtGbry7opB/O6sjOM7zA39KzF+Oa31LzAuFuF8XWyhuyoLQf16bZlbONu0MR98tgFuJyPkAlXgCq4G3QF9DeEYfh1BeoDBG+uwHn7Ek1da712ptk+sK31AtnndQjr0DGVyk8VdHr/O1r21mV9ORNVdQEqDF1feKG0no+iTOEhv+yBlLadvbrnUIxLR1JYNwhiXtLKDmkTBCcktZ4MxCFcsFUit65plNPuWWl9eaid4c7lplEGF5tG0UVo57hau0V/ToR2GgUEb/7ceeulOfXndJDRp1Xe+AamBl7an2t7VXHdHhHrbjTMaSUNrPUdgtkidVARPdJAL5FUk3c0BN4O3aLsqBN3Ovk06x3VhWUjH6nq+gDkeLRZvoqpXOZgcv3jDw2MP1RoEisqZMio02LrGn3AbX+Gp4PJsL5snhNM7ktGdvhBF3807z4YIonruOK6wdGHIZK4GgXE9Y4+Jv/8NVGDX6q+6yuPj97zwnM/0g1a2t8Dp0qwsN2lyxLzsqo2PWOYnKxU9Ywl6B5ASTVZ7txxVHW7uoU86MyhJNfHA6rLus0DgF6l6mblkgRPIGbcrfytI0R6sEpbI8RC2uSdjcS2piauCg4ti+x6fx0TJzqaTJJWuxiW8HiywsFmdC5bll1ZL4OML9M+BSmibg456C3v53iObcds3C6cAD2trBj3W9+K3J/Y6YmDbAPg6ZwfdGN3N1Q4PVlwzhiFdjosB0FZ5Zixra6hxw+rjyNl/OPe+WXJX+++7Vtw6PGZg1w7v0dKN/qpqX4xtOyAj85WtdYveQM2jQ8evPWOUYaXI4wqf/qMJWU13bpoI7385/Ovv1CfYTk1/+F9uEausvnNCWpuv/DC3mRYDM1/b8I5lupba8JZH8Zoe4Xe3E5exvIX9PJk2dtHV1/+Of75sZCb13bM7N/imNmOHDObM1KsxD4ebIKHme+XRV3imNnNEk+Ch68fHu9/e8/Pn1++7b4sGzJnQLFVf3GXUYBw89TKCjAniJ7u92YFGF76OGLhoXrohi0+YRtFNf4F</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-17T02:17:24.280Z" 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="kcVUq0MUUabcbGdeMGgH" 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/pg_graph/version.rb
CHANGED
data/lib/type/read.rb
CHANGED
@@ -186,12 +186,6 @@ module PgGraph::Type
|
|
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,14 @@ 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
|
156
|
+
def subtable?() !supertable.nil? end
|
157
157
|
|
158
|
-
#
|
159
|
-
def supertable
|
158
|
+
# Parent table if this table is a derived table and otherwise nil
|
159
|
+
def supertable = record_type.superrecord&.table
|
160
160
|
|
161
|
-
# True if table is a
|
162
|
-
def
|
161
|
+
# True if table is a parent table. Initialized by #read
|
162
|
+
def supertable?() record_type.subrecord? end
|
163
163
|
|
164
164
|
def mm_table?() @mm_table end
|
165
165
|
def nm_table?() @nm_table end
|
@@ -231,6 +231,42 @@ module PgGraph::Type
|
|
231
231
|
class RecordType < CompositeType
|
232
232
|
include TableObject
|
233
233
|
|
234
|
+
# Associated Table object
|
235
|
+
attr_reader :table
|
236
|
+
|
237
|
+
# Redefine array_type
|
238
|
+
def array_type() table_type end
|
239
|
+
|
240
|
+
def superrecord()
|
241
|
+
(@superrecord_initialized && @superrecord) or begin
|
242
|
+
@superrecord_initialized = true
|
243
|
+
@superrecord = fields.find { |field| field.is_a?(SuperRecordColumn) }&.type
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
def subrecord?
|
248
|
+
(@subrecord_initialized && subrecord) or begin
|
249
|
+
@subrecord_initialized = true
|
250
|
+
@subrecord = fields.find { |field| field.is_a?(SubRecordColumn) } && true || false
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
# A record type has the schema as parent. Note that a record is
|
255
|
+
# initialized with a Table object and not a TableType object
|
256
|
+
def initialize(table)
|
257
|
+
constrain table, Table
|
258
|
+
super(table.schema, PgGraph.inflector.table2record_type(table.name))
|
259
|
+
@table = table
|
260
|
+
table_type = TableType.new(table.schema, self) # FIXME
|
261
|
+
@table.send(:type=, table_type)
|
262
|
+
@superrecord_initialized = false
|
263
|
+
end
|
264
|
+
|
265
|
+
def attach(*args)
|
266
|
+
@columns = nil
|
267
|
+
super
|
268
|
+
end
|
269
|
+
|
234
270
|
# List of postgres columns. The columns are sorted by ordinal
|
235
271
|
def columns()
|
236
272
|
@columns ||= begin
|
@@ -287,8 +323,6 @@ module PgGraph::Type
|
|
287
323
|
|
288
324
|
end
|
289
325
|
|
290
|
-
# field.is_a?(SimpleColumn) || field.is_a?(KindReference}.sort_by(&:ordinal) end
|
291
|
-
|
292
326
|
# List of columns excluding generated fields
|
293
327
|
def value_columns()
|
294
328
|
columns.select { |column| !column.generated? }
|
@@ -301,26 +335,6 @@ module PgGraph::Type
|
|
301
335
|
@columns_hash.key?(name)
|
302
336
|
end
|
303
337
|
|
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
338
|
end
|
325
339
|
|
326
340
|
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.
|
4
|
+
version: 0.3.6
|
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
|