Dependencies, fix panic on version get, Filtered Versions route (#153)

This commit is contained in:
Geometrically
2021-01-29 20:35:29 -07:00
committed by GitHub
parent e33738a876
commit 06bb6f7bff
7 changed files with 492 additions and 337 deletions

View File

@@ -332,19 +332,6 @@
"nullable": []
}
},
"16871e66d8762452be3ca0c80f4733f2db49980205fbf7cb6f9829cdd99cdb65": {
"query": "\n INSERT INTO dependencies (dependent_id, dependency_id)\n VALUES ($1, $2)\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": []
}
},
"16b3ac53ef5e94f51ab39484add21e2f76d49015917dc877560607a31f5537e9": {
"query": "\n UPDATE users\n SET email = $1\n WHERE (id = $2)\n ",
"describe": {
@@ -687,110 +674,6 @@
]
}
},
"219369194dd52ff431f84c9d92c8aa2be4ce0927a1990f6b5fd84152327b26dd": {
"query": "\n SELECT v.id id, v.mod_id mod_id, v.author_id author_id, v.name version_name, v.version_number version_number,\n v.changelog changelog, v.changelog_url changelog_url, v.date_published date_published, v.downloads downloads,\n rc.channel release_channel, v.featured featured,\n STRING_AGG(DISTINCT gv.version, ',') game_versions, STRING_AGG(DISTINCT l.loader, ',') loaders,\n STRING_AGG(DISTINCT f.id || ', ' || f.filename || ', ' || f.is_primary || ', ' || f.url, ' ,') files,\n STRING_AGG(DISTINCT h.algorithm || ', ' || encode(h.hash, 'escape') || ', ' || h.file_id, ' ,') hashes\n FROM versions v\n INNER JOIN release_channels rc on v.release_channel = rc.id\n LEFT OUTER JOIN game_versions_versions gvv on v.id = gvv.joining_version_id\n LEFT OUTER JOIN game_versions gv on gvv.game_version_id = gv.id\n LEFT OUTER JOIN loaders_versions lv on v.id = lv.version_id\n LEFT OUTER JOIN loaders l on lv.loader_id = l.id\n LEFT OUTER JOIN files f on v.id = f.version_id\n LEFT OUTER JOIN hashes h on f.id = h.file_id\n WHERE v.id = $1\n GROUP BY v.id, rc.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "mod_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "author_id",
"type_info": "Int8"
},
{
"ordinal": 3,
"name": "version_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "version_number",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "changelog",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "changelog_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "date_published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 9,
"name": "release_channel",
"type_info": "Varchar"
},
{
"ordinal": 10,
"name": "featured",
"type_info": "Bool"
},
{
"ordinal": 11,
"name": "game_versions",
"type_info": "Text"
},
{
"ordinal": 12,
"name": "loaders",
"type_info": "Text"
},
{
"ordinal": 13,
"name": "files",
"type_info": "Text"
},
{
"ordinal": 14,
"name": "hashes",
"type_info": "Text"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
null,
null,
null,
null
]
}
},
"2439ae8db5ae81aad03351e9a2e19259ef033110ed1c2d71bc0a643104ca32d0": {
"query": "\n UPDATE versions\n SET downloads = downloads + 1\n WHERE id = $1\n ",
"describe": {
@@ -803,110 +686,6 @@
"nullable": []
}
},
"244ee3f0f9b0229a9e97ff9f7a2808b4d6ee6d24be008606db1198a54a33c468": {
"query": "\n SELECT v.id id, v.mod_id mod_id, v.author_id author_id, v.name version_name, v.version_number version_number,\n v.changelog changelog, v.changelog_url changelog_url, v.date_published date_published, v.downloads downloads,\n rc.channel release_channel, v.featured featured,\n STRING_AGG(DISTINCT gv.version, ',') game_versions, STRING_AGG(DISTINCT l.loader, ',') loaders,\n STRING_AGG(DISTINCT f.id || ', ' || f.filename || ', ' || f.is_primary || ', ' || f.url, ' ,') files,\n STRING_AGG(DISTINCT h.algorithm || ', ' || encode(h.hash, 'escape') || ', ' || h.file_id, ' ,') hashes\n FROM versions v\n INNER JOIN release_channels rc on v.release_channel = rc.id\n LEFT OUTER JOIN game_versions_versions gvv on v.id = gvv.joining_version_id\n LEFT OUTER JOIN game_versions gv on gvv.game_version_id = gv.id\n LEFT OUTER JOIN loaders_versions lv on v.id = lv.version_id\n LEFT OUTER JOIN loaders l on lv.loader_id = l.id\n LEFT OUTER JOIN files f on v.id = f.version_id\n LEFT OUTER JOIN hashes h on f.id = h.file_id\n WHERE v.id IN (SELECT * FROM UNNEST($1::bigint[]))\n GROUP BY v.id, rc.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "mod_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "author_id",
"type_info": "Int8"
},
{
"ordinal": 3,
"name": "version_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "version_number",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "changelog",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "changelog_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "date_published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 9,
"name": "release_channel",
"type_info": "Varchar"
},
{
"ordinal": 10,
"name": "featured",
"type_info": "Bool"
},
{
"ordinal": 11,
"name": "game_versions",
"type_info": "Text"
},
{
"ordinal": 12,
"name": "loaders",
"type_info": "Text"
},
{
"ordinal": 13,
"name": "files",
"type_info": "Text"
},
{
"ordinal": 14,
"name": "hashes",
"type_info": "Text"
}
],
"parameters": {
"Left": [
"Int8Array"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
null,
null,
null,
null
]
}
},
"24e5daad907eec54505274f93952d5c20f4bbdd3f771eb0a2fdfa6324768df39": {
"query": "\n SELECT short, name FROM licenses\n WHERE id = $1\n ",
"describe": {
@@ -1268,6 +1047,20 @@
]
}
},
"381974f80a890a59f89c46b0c709e4511c0216eb8059ee47bb1e1456caf68fd7": {
"query": "\n INSERT INTO dependencies (dependent_id, dependency_id, dependency_type)\n VALUES ($1, $2, $3)\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8",
"Varchar"
]
},
"nullable": []
}
},
"3831c1b321e47690f1f54597506a0d43362eda9540c56acb19c06532bba50b01": {
"query": "\n SELECT id, user_id, role, permissions, accepted\n FROM team_members\n WHERE team_id = $1\n ",
"describe": {
@@ -1627,6 +1420,116 @@
"nullable": []
}
},
"529f4c62eb8e98909ea7ec504f86647f105b1717990dd0c422919234060dc30f": {
"query": "\n SELECT v.id id, v.mod_id mod_id, v.author_id author_id, v.name version_name, v.version_number version_number,\n v.changelog changelog, v.changelog_url changelog_url, v.date_published date_published, v.downloads downloads,\n rc.channel release_channel, v.featured featured,\n STRING_AGG(DISTINCT gv.version, ',') game_versions, STRING_AGG(DISTINCT l.loader, ',') loaders,\n STRING_AGG(DISTINCT f.id || ', ' || f.filename || ', ' || f.is_primary || ', ' || f.url, ' ,') files,\n STRING_AGG(DISTINCT h.algorithm || ', ' || encode(h.hash, 'escape') || ', ' || h.file_id, ' ,') hashes,\n STRING_AGG(DISTINCT d.dependency_id || ', ' || d.dependency_type, ' ,') dependencies\n FROM versions v\n INNER JOIN release_channels rc on v.release_channel = rc.id\n LEFT OUTER JOIN game_versions_versions gvv on v.id = gvv.joining_version_id\n LEFT OUTER JOIN game_versions gv on gvv.game_version_id = gv.id\n LEFT OUTER JOIN loaders_versions lv on v.id = lv.version_id\n LEFT OUTER JOIN loaders l on lv.loader_id = l.id\n LEFT OUTER JOIN files f on v.id = f.version_id\n LEFT OUTER JOIN hashes h on f.id = h.file_id\n LEFT OUTER JOIN dependencies d on v.id = d.dependent_id\n WHERE v.id IN (SELECT * FROM UNNEST($1::bigint[]))\n GROUP BY v.id, rc.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "mod_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "author_id",
"type_info": "Int8"
},
{
"ordinal": 3,
"name": "version_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "version_number",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "changelog",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "changelog_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "date_published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 9,
"name": "release_channel",
"type_info": "Varchar"
},
{
"ordinal": 10,
"name": "featured",
"type_info": "Bool"
},
{
"ordinal": 11,
"name": "game_versions",
"type_info": "Text"
},
{
"ordinal": 12,
"name": "loaders",
"type_info": "Text"
},
{
"ordinal": 13,
"name": "files",
"type_info": "Text"
},
{
"ordinal": 14,
"name": "hashes",
"type_info": "Text"
},
{
"ordinal": 15,
"name": "dependencies",
"type_info": "Text"
}
],
"parameters": {
"Left": [
"Int8Array"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
null,
null,
null,
null,
null
]
}
},
"5322e7791400b47640f897f3e32d9a0f2915da7d71a34c4e6bf6bd648cfaaa6e": {
"query": "\n DELETE FROM files\n WHERE files.id = $1\n ",
"describe": {
@@ -1786,6 +1689,28 @@
"nullable": []
}
},
"5ff8fd471ff62f86aa95e52cee2723b31ec3d7fc53c3ef1454df40eef0ceff53": {
"query": "\n SELECT version.id FROM (\n SELECT DISTINCT ON(v.id) v.id, v.date_published FROM versions v\n INNER JOIN game_versions_versions gvv ON gvv.joining_version_id = v.id\n INNER JOIN game_versions gv on gvv.game_version_id = gv.id AND (cardinality($2::varchar[]) = 0 OR gv.version = ANY($2::varchar[]))\n INNER JOIN loaders_versions lv ON lv.version_id = v.id\n INNER JOIN loaders l on lv.loader_id = l.id AND (cardinality($3::varchar[]) = 0 OR l.loader = ANY($3::varchar[]))\n WHERE v.mod_id = $1\n ) AS version\n ORDER BY version.date_published ASC\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
}
],
"parameters": {
"Left": [
"Int8",
"VarcharArray",
"VarcharArray"
]
},
"nullable": [
false
]
}
},
"6131d32a65f5e04775308386812f25c6d8464582678536a392a4a3737667f363": {
"query": "\n SELECT id, short, name FROM licenses\n ",
"describe": {
@@ -2206,26 +2131,6 @@
]
}
},
"78c8b561e37e3aed48d3a4108ce7fd81866c6835ea91517ffc90c30e1284246e": {
"query": "\n SELECT id FROM versions\n WHERE mod_id = $1\n ORDER BY date_published ASC\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false
]
}
},
"796f057ea8eb5b01d3eedeee9840fb37464ea567f32871953fb07e14ed86af1c": {
"query": "SELECT EXISTS(SELECT 1 FROM team_members WHERE team_id = $1 AND user_id = $2)",
"describe": {
@@ -3573,19 +3478,6 @@
]
}
},
"c82eb1b059b62444ab1d17e5a0bd7ef8acea4b05c6f3576c07d20c4ca7635a11": {
"query": "\n INSERT INTO dependencies (dependent_id, dependency_id)\n VALUES ($1, $2)\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": []
}
},
"c9d63ed46799db7c30a7e917d97a5d4b2b78b0234cce49e136fa57526b38c1ca": {
"query": "\n SELECT EXISTS(SELECT 1 FROM versions WHERE id = $1)\n ",
"describe": {
@@ -3606,6 +3498,116 @@
]
}
},
"ca5e6d56640069ea9b1c32881d59be8eb1c2ee06ececf223ad378d0422a6f198": {
"query": "\n SELECT v.id id, v.mod_id mod_id, v.author_id author_id, v.name version_name, v.version_number version_number,\n v.changelog changelog, v.changelog_url changelog_url, v.date_published date_published, v.downloads downloads,\n rc.channel release_channel, v.featured featured,\n STRING_AGG(DISTINCT gv.version, ',') game_versions, STRING_AGG(DISTINCT l.loader, ',') loaders,\n STRING_AGG(DISTINCT f.id || ', ' || f.filename || ', ' || f.is_primary || ', ' || f.url, ' ,') files,\n STRING_AGG(DISTINCT h.algorithm || ', ' || encode(h.hash, 'escape') || ', ' || h.file_id, ' ,') hashes,\n STRING_AGG(DISTINCT d.dependency_id || ', ' || d.dependency_type, ' ,') dependencies\n FROM versions v\n INNER JOIN release_channels rc on v.release_channel = rc.id\n LEFT OUTER JOIN game_versions_versions gvv on v.id = gvv.joining_version_id\n LEFT OUTER JOIN game_versions gv on gvv.game_version_id = gv.id\n LEFT OUTER JOIN loaders_versions lv on v.id = lv.version_id\n LEFT OUTER JOIN loaders l on lv.loader_id = l.id\n LEFT OUTER JOIN files f on v.id = f.version_id\n LEFT OUTER JOIN hashes h on f.id = h.file_id\n LEFT OUTER JOIN dependencies d on v.id = d.dependent_id\n WHERE v.id = $1\n GROUP BY v.id, rc.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "mod_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "author_id",
"type_info": "Int8"
},
{
"ordinal": 3,
"name": "version_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "version_number",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "changelog",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "changelog_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "date_published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 9,
"name": "release_channel",
"type_info": "Varchar"
},
{
"ordinal": 10,
"name": "featured",
"type_info": "Bool"
},
{
"ordinal": 11,
"name": "game_versions",
"type_info": "Text"
},
{
"ordinal": 12,
"name": "loaders",
"type_info": "Text"
},
{
"ordinal": 13,
"name": "files",
"type_info": "Text"
},
{
"ordinal": 14,
"name": "hashes",
"type_info": "Text"
},
{
"ordinal": 15,
"name": "dependencies",
"type_info": "Text"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
null,
null,
null,
null,
null
]
}
},
"cb57ae673f1a7e50cc319efddb9bdc82e2251596bcf85aea52e8def343e423b8": {
"query": "\n INSERT INTO hashes (file_id, algorithm, hash)\n VALUES ($1, $2, $3)\n ",
"describe": {
@@ -4232,6 +4234,20 @@
]
}
},
"fbd55f89e9bd8c67605f67944cd585abf8a475b83f0b926d7dbcb26478df4da0": {
"query": "\n INSERT INTO dependencies (dependent_id, dependency_id, dependency_type)\n VALUES ($1, $2, $3)\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8",
"Varchar"
]
},
"nullable": []
}
},
"fc12e683844642245dae7ffad7aff29f2b65c7441be7f22e319da468e7f3d323": {
"query": "\n SELECT v.mod_id, v.author_id, v.name, v.version_number,\n v.changelog, v.changelog_url, v.date_published, v.downloads,\n v.release_channel, v.featured\n FROM versions v\n WHERE v.id = $1\n ",
"describe": {